そのため、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ブロックで何をしますか?その時点で、それ自体が混乱しているエラーをログに記録するというエラーをキャッチしているでしょう。