所以我在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\u错误方法中,在尝试写入数据库时是否需要try/catch块?我想我会的,以防连接出问题,等等。-但这真的有必要吗?另外,如果有错误,我在catch块中会做什么?在这一点上,我将捕捉到记录错误的错误,这个错误本身就是令人困惑的。