Pergunta

As perguntas diz tudo, tomar este exemplo de código:

<ul id="css-id">
    <li>
    <something:CustomControl ID="SomeThingElse" runat="server" />
    <something:OtherCustomControl runat="server" />
    </li>
</ul>

em algum lugar Agora, se um erro é jogado dentro destas controlls (que estão localizados em uma página mestra) eles vão derrubar o site inteiro, como seria um capturar essas exceções?

Foi útil?

Solução

Você pode pegar toda exceção não tratada em outras partes do Global.asax página / aula. Olhada em:

protected void Application_Error(Object sender, EventArgs e)

método.

Outras dicas

Infelizmente uma exceção não tratada será sempre erro seu site. Você pode evitar isso algumas maneiras embora.

  • Use a seção em seu web.config para mostrar uma mensagem de fácil utilização
  • No seu Global.asax - ou um manipulador personalizado - pegar o seu exceção não tratada e reagir em conformidade - como este

melhor solução

  • Certifique-se de controles não jogue exceções não tratadas!

Adicionar um global.asax en implementar o manipulador Application_Error. Use a função Server.GetLastError () para obter uma alça sobre a exceção lançada.

Usando o método Application_Error global.asax, conforme descrito no Como criar erro personalizada relatórios páginas em ASP. NET utilizando o Visual C # .NET .

Uma abordagem alternativa seria usar um HTTP módulo ; isto dá-lhe um pouco mais de flexibilidade (você pode lidar com erros de múltiplas aplicações, por exemplo).

Você quer capturar a exceção e manipulá-lo?

Ou você quer evitar a tela amarela da morte? Se você está tentando impedir que a tela amarela da morte, olhar para manipular o evento Error na HttpApplication (em outras palavras, em sua Global.asax).

Veja a seguinte página MSDN para mais detalhes: http://msdn.microsoft.com/en- us / library / system.web.httpapplication.error.aspx

Especificamente este parágrafo:

A exceção que gera o evento de erro pode ser acessado por uma chamada para o método GetLastError. Se o seu aplicativo gera uma saída de erro personalizada, suprimir a mensagem de erro padrão que é gerado pelo ASP.NET por uma chamada para o método ClearError.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top