在Webform1.aspx.cs中:
protected void Page_Load(object sender,EventArgs e) { throw new Exception("test exception"); }@H_301_4@在Global.asax.cs中:
protected void Application_Error(object sender,EventArgs e) { // Code that runs when an unhandled error occurs if (Server.GetLastError() is HttpUnhandledException) Server.Transfer("ErrUnknown.aspx"); }@H_301_4@但是从不调用Application_Error事件处理程序.相反,我得到一个运行时错误页面. @H_301_4@在抛出异常后,我需要做什么才能调用Application_Error?
解决方法
它看起来很好,应该调用Application_Error.
@H_301_4@您是否通过调试应用程序进行了检查?
@H_301_4@实际上你缺少Server.ClearError()所以异常被传递给asp.net但你应该在这里压制它,因为你自己处理它.
protected void Application_Error(object sender,EventArgs e) { // Code that runs when an unhandled error occurs if (Server.GetLastError() is HttpUnhandledException) { // suppressing the error so it should not pass to asp.net Server.ClearError(); Server.Transfer("ErrUnknown.aspx"); } }