所以我处理所有异常在我的项目在我的全球性的。asax页。例如,在一个随机的页面我可以有:

Protected Sub SomeFunction()

        Try
            'do something here

        Catch ex As Exception

            Throw ex

        End Try

    End Sub

那么异常的气泡到全球性的。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方法,我需要做的尝试/抓框当尝试写的数据库?我想我会在情况出现错误的连接等。-但是这真的有必要吗?此外,我会做什么的追赶框如果有一个错误?在这一点上,我想会捉错误的记录错误的,这是混淆在其自己的权利。

有帮助吗?

解决方案

它可能是一个很好的想法有一个尝试/抓住那里,我会做的就是编写详细的文本的文件或xml文件,以便可以参照后来的两个错误的未来和试图解决这些问题。这当然意味着你可能会想要一个尝试/抓住周围写入磁盘,在这种情况下,我只想放弃,并呼吁它的一天。=)

在一个完全单独的注意,你真的应该看看ELMAH: http://code.google.com/p/elmah/.这不可能是你想要的一切以及更多。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top