2 Stimmen

Erfassen von Fehlerereignissen

Ich habe einige komplexe Anwendungen in Visual Basic .NET 2008 erstellt, und da sie sich gerade in der Testphase befinden, kommt es immer wieder vor, dass ein oder zwei Fehler auftreten, die das Programm zum Absturz bringen. Das Problem ist, dass es ein Tracking-Teil gibt, das protokolliert, wer die Programme gerade benutzt. Wenn sich ein Benutzer anmeldet, wird protokolliert, dass er gerade angemeldet ist, und wenn das Ereignis zum Schließen des Formulars ausgelöst wird, wird das Protokoll gelöscht, um zu zeigen, dass er es geschlossen hat.

Jetzt kommt mein Problem immer dann, wenn das Formular aufgrund eines Fehlers abstürzt, da es das Schließereignis nicht auslöst und daher das Protokoll ungenau wird. Meine Frage ist, ob es möglich ist, jeden Fehler zu erfassen, dass das Formular in Form eines Ereignisses haben würde?

3voto

LarsTech Punkte 78855

Versuchen Sie es mit einem Doppelklick auf "Mein Projekt" im Projektmappen-Explorer.

Auf der Registerkarte "Anwendung" befindet sich ganz unten die Schaltfläche "Anwendungsereignisse anzeigen". Klicken Sie darauf.

Sie sollten eine "ApplicationEvents"-Datei sehen. Wählen Sie die UnhandledException Veranstaltung.

Sie sollte folgendermaßen aussehen:

Namespace My

  ' The following events are available for MyApplication:
  ' 
  ' Startup: Raised when the application starts, before the startup form is created.
  ' Shutdown: Raised after all application forms are closed.  This event is not raised if the application terminates abnormally.
  ' UnhandledException: Raised if the application encounters an unhandled exception.
  ' StartupNextInstance: Raised when launching a single-instance application and the application is already active. 
  ' NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected.
  Partial Friend Class MyApplication

    Private Sub MyApplication_UnhandledException(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.ApplicationServices.UnhandledExceptionEventArgs) Handles Me.UnhandledException
      // log your exception here.
    End Sub
  End Class

End Namespace

Hinweis: Dieses Ereignis wird nicht ausgelöst während ein Debugger angeschlossen ist .

0voto

Isuru Punkte 28893

Sie können Ihren Code um Versuchen...fangen Blöcke, um ausgelöste Ausnahmen abzufangen.

Beispiel:

Public Sub testProgram()

        Try

            'the code goes here

        Catch ex As Exception

            MessageBox.Show(ex.ToString)

        End Try

End Sub

Eigentlich sollte die Behandlung von Ausnahmen bereits in der Entwicklungsphase erfolgen. Dies jetzt zu tun, wird eine mühsame Aufgabe sein.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X