我设置了一个异常处理类来将错误记录到数据库中,但是我很想知道我是否也能以某种方式设置应用程序,所以try catch之外的任何错误都会以某种方式调用相同的过程?
它在大多数情况下运行良好,并向用户显示带有错误代码的屏幕,但我希望每次都能使用这个友好的错误屏幕,但在奇怪的情况下,抛出try catch之外的错误并且它显示了正常的asp.net错误。
我使用的捕获物:
catch (SqlException ex)
{
ExceptionHandling.SQLException(ex, constPageID, constIsSiteSpecific);
}
答案 0 :(得分:2)
可以使用Global.asax的Application_Error方法。
protected void Application_Error()
{
Exception exception = Server.GetLastError();//Get the Last Error
LogException(exception);//Custom Code
}
但请注意,如果您发生任何错误,用户会受到影响,会将其引导至error page。通常最好在页面本身处理较小的错误并提供简单的消息。
关于正确的错误处理有无数的讨论 - 我个人喜欢捕获所谓的UI方法(OnPreRender,OnLoad OnEvent等)。
答案 1 :(得分:1)
如果您正在开发ASP.NET应用程序,则可以在“Application_Error”方法中记录Global.asax中未处理的异常。
protected void Application_Error()
{
Exception exception = Server.GetLastError();
// Clear the error
Server.ClearError();
// Log exception
}