尝试/捕获Global.asax,同时将错误记录到db需要?

时间:2010-11-03 18:01:00

标签: asp.net vb.net exception-handling exception-logging

所以我在Global.asax页面中处理项目中的所有异常。例如,在随机页面上我可以:

Protected Sub SomeFunction()

        Try
            'do something here

        Catch ex As Exception

            Throw ex

        End Try

    End Sub

然后异常冒泡到Global.asax页面,在那里我处理它并像这样登录到数据库:

Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)

        Dim ex As Exception = Server.GetLastError
        Dim loggedExceptionID As Integer = 0

        Try
            loggedExceptionID = New BLL.ExceptionHandler().LogException(ex)
            Response.Redirect("~/ErrorPage.aspx?ID=" & loggedExceptionID, False)

        Catch loggingError As Exception

            'what do I do here?

        End Try

    End Sub

BLL.ExceptionHandler()。LogException(ex)函数只是将错误详细信息写入数据库。

所以我的问题是在Application_Error方法中,在尝试写入数据库时​​是否需要try / catch块?我想如果连接出现问题,我会这样做 - 但这真的有必要吗?另外,如果出现错误,我会在catch块中做什么?那时我会抓住记录错误的错误,这个错误本身就令人困惑。

1 个答案:

答案 0 :(得分:1)

在那里进行try / catch可能是个好主意,我要做的是将详细信息写入文本文件或xml文件,以便将来可以参考这两个错误并尝试修复它们。那当然意味着你可能想要另外尝试/捕获写入磁盘,在这种情况下,我会放弃并称它为一天。 =)

在一个完全独立的说明中,你真的应该看看ELMAH:http://code.google.com/p/elmah/。这可能是你想要的一切,还有更多。

相关问题