Rubrik: Entwicklungsumgebung · Fehlerbehandlung | VB-Versionen: VB.NET | 11.01.07 |
Zentrale Fehlerbehandlung (VB.NET) Dieser Tipp zeigt, wie man eine zentrale Fehlerbehandlungsroutine erstellt, um unerwartete Anwendungsfehler abzufangen und auszuwerten | ||
Autor: Dieter Otter | Bewertung: | Views: 31.762 |
www.tools4vb.de | System: WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Es kann immer wieder einmal vorkommen, dass man bei der Entwicklung seiner Anwendung hier oder da vergißt, eine Fehlerbehandlungsroutine zu implementieren. Was in VB6 nahezu unmöglich war, ist mit VB.NET absolut kein Problem mehr: eine zentrale Fehlerbehandlungsroutine, die immer dann aufgerufen wird, wenn eine Ausnahme auftritt, die nicht explizit per Programmcode behandelt wurde.
Gehen Sie hierzu wie folgt vor:
- Fügen Sie dem Projekt ein neues Modul hinzu
- Fügen Sie dem Modul eine neue Prozedur namens "Sub Main" hinzu
- Legen Sie in den Projekt-Eigenschaften die "Sub Main" Prozedur als neues Start-Objekt fest
- Ganz zu Beginn der Programmausführung (in der Sub Main) wird die zentrale Fehlerbehandlungsprozedur festgelegt werden
- Das Hauptformular wird per Application.Run gestartet
Module Module1 Public Sub Main() ' Start-Prozedur mit Definition einer ' globalen Fehlerbehandlungsroutine AddHandler Application.ThreadException, _ AddressOf GeneralErrorHandler ' Start-Formular laden und anzeigen Application.Run(New Form1) End Sub ' zentrale Fehlerbehandlung Private Sub GeneralErrorHandler(ByVal sender As Object, _ ByVal e As System.Threading.ThreadExceptionEventArgs) ' Fehlertext zusammenbauen Dim sError As String = "Unerwarteter Anwendungsfehler: " & vbCrLf & _ e.Exception.Message.ToString & vbCrLf & vbCrLf & _ "Source: " & e.Exception.StackTrace.ToString & vbCrLf & vbCrLf & _ "Bitte kontaktieren Sie den Hersteller" ' hier: MsgBox mit Fehlernummer und Beschreibung anzeigen... MsgBox(sError, MsgBoxStyle.Critical Or MsgBoxStyle.OKOnly, "Fehler...") ' ... und Anwendung beenden Application.Exit() End Sub End Module
Wann immer jetzt ein nicht behandelter Programmfehler auftritt, wird die zentrale Fehlerbehandlungsroutine GeneralErrorHandler gestartet, in der Sie entweder gezielt auf
einzelne Fehler reagieren oder auch die gesamte Anwendung per "Application.Exit" Aufruf beenden können.