Frage

Also habe ich alle Ausnahmen in meinem Projekt in meiner Seite Global.asax behandeln. Zum Beispiel auf einer zufälligen Seite könnte ich:

Protected Sub SomeFunction()

        Try
            'do something here

        Catch ex As Exception

            Throw ex

        End Try

    End Sub

So dann sprudelt die Ausnahme von der Global.asax Seite, wo ich damit umgehen und melden Sie sich an die Datenbank wie folgt:

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

Die BLL.ExceptionHandler (). LogException (ex) Funktion schreibt nur die Fehlerdetails in die Datenbank.

Also meine Frage in der Application_Error Methode ist, muss ich die try / catch-Block, wenn zu schreiben in die Datenbank versuchen? Ich denke, ich würde in dem Fall etwas schief geht mit der Verbindung, etc. - aber ist das wirklich notwendig? Auch, was würde ich im catch-Block tun, wenn ein Fehler auftritt? An diesem Punkt würde ich den Fehler der Protokollierung eines Fehlers werden zu kontrollieren, die in seinem eigenen Recht ist verwirrend.

War es hilfreich?

Lösung

Es ist wahrscheinlich eine gute Idee, einen try / catch dort zu haben, und das, was ich möchte, ist, schreiben Sie die Details in einer Textdatei oder XML-Datei, so dass Sie auf beiden Fehler in Zukunft zurückgreifen können und versuchen, sie zu beheben. Das bedeutet natürlich wollen Sie wahrscheinlich eine andere try / catch auf die Platte um das Schreiben, in welchem ??Fall würde ich einfach aufgeben und nennen ihn einen Tag. =)

Auf einem völlig separaten Notiz, sollten Sie wirklich ELMAH check out: http://code.google. com / p / Elmah / . Dies gilt wahrscheinlich alles, was Sie wollen und vieles mehr.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top