Попробуйте / поймать в Global.asax при записи ошибок в БД необходимо? - PullRequest
1 голос
/ 03 ноября 2010

Итак, я обработал все исключения в моем проекте на моей странице 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 Ответ

1 голос
/ 03 ноября 2010

Вероятно, это хорошая идея, чтобы попробовать / поймать там, и я хотел бы написать подробности в текстовый файл или XML-файл, чтобы вы могли вернуться к обеим ошибкам в будущем и попытаться исправить их.Это, конечно, означает, что вам, вероятно, понадобится еще одна попытка / попытка записи на диск, и в этом случае я просто сдаюсь и назову это днем.=)

В совершенно отдельном примечании, вы действительно должны проверить ELMAH: http://code.google.com/p/elmah/. Это, вероятно, все, что вы хотите, и многое другое.

...