Capturar exceções dentro .aspx e .ascx páginas
-
02-07-2019 - |
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?
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.