1

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

4

1 に答える 1

1

そこにtry/catchを用意するのはおそらく良い考えです。私が行うことは、テキストファイルまたはxmlファイルに詳細を書き込んで、将来両方のエラーを参照して修正できるようにすることです。もちろん、これは、ディスクへの書き込みをもう一度試してキャッチする必要があることを意味します。その場合は、あきらめて1日と呼びます。=)

完全に別のメモで、あなたは本当にELMAHをチェックするべきです:http ://code.google.com/p/elmah/ 。これはおそらくあなたが望むすべてともっとたくさんのことをします。

于 2010-11-03T18:05:50.797 に答える