【问题标题】:handling errors outside of exceptions处理异常之外的错误
【发布时间】:2014-01-20 14:38:03
【问题描述】:

我设置了一个异常处理类来将错误记录到数据库中,它工作得非常好,但我想知道我是否也可以以某种方式设置应用程序,以便 try catch 之外的任何错误都会以某种方式调用相同的过程?

它在大多数情况下运行良好,并向用户显示一个带有错误代码的屏幕,但我希望每次都能使用这个友好的错误屏幕,但偶尔会抛出 try catch 之外的错误,并且它显示了正常的 asp.net 错误。

我使用的渔获物:

catch (SqlException ex)
{
  ExceptionHandling.SQLException(ex, constPageID, constIsSiteSpecific);
}

【问题讨论】:

标签: c# asp.net sql exception


【解决方案1】:

可以使用 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 等)。

【讨论】:

    【解决方案2】:

    如果您正在开发 ASP.NET 应用程序,您可以在 Global.asax 中的“Application_Error”方法中记录未处理的异常。

    protected void Application_Error()
        {
            Exception exception = Server.GetLastError();
            // Clear the error
            Server.ClearError();
    
            // Log exception
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-03
      • 1970-01-01
      • 2012-09-15
      • 2011-04-03
      • 2014-01-08
      • 2014-04-06
      • 2013-12-27
      • 2013-05-30
      相关资源
      最近更新 更多