0

我有一个 ASP.NET 页面,其中包含许多如下所示的事件处理程序:

Private Sub btnNextEvent_Click(sender As Object, e As EventArgs) Handles btnNextEvent.Click
    Try
        NextRegistration()            
    Catch ex As Exception
        lblError.Text = ex.Message
    End Try
End Sub

那个小小的 try-except 块在很多(可能有十几个)地方重复出现。

有没有办法定义一个页面范围的“默认”异常处理程序,以便我可以这样说?

Private Overrides Sub DefaultHanderIWishIHad(ex As Exception)
    lblError.Text = ex.Message
End Sub

Private Sub btnNextEvent_Click(sender As Object, e As EventArgs) Handles btnNextEvent.Click
    'no need to handle here, because the default handler is just fine...
    NextRegistration()            
End Sub
4

3 回答 3

0

在一个页面上

private void Page_Error(object sender, EventArgs e)
{ /* ... */ }

应用程序:Global.asax

void Application_Error(object sender, EventArgs e)
{ /* ... */ }
于 2013-04-10T19:04:33.720 回答
0

实际上,如果您遇到异常并且没有就地处理,那么您将失去控制 - 从那里您只能重定向并记录错误。

所以我不建议进行全局错误捕获。现在在页面上有一个在异常时调用的函数OnError,但我只建议关闭任何打开的处理程序,而不是处理任何错误,因为正如我所说,当你在那里时,你失去了对页面的控制.

protected override void OnError(EventArgs e)
{
   base.OnError(e);
}

相对:如何在我的 ASP.NET 应用程序中创建一个“通用错误”页面,以便它处理在提供该页面本身时触发的错误?

于 2013-04-10T20:07:43.857 回答
0

甚至您也可以使用 ELMAH http://code.google.com/p/elmah/。哪个好,易于配置和处理所有未处理的异常

于 2013-04-10T19:41:00.357 回答