vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Entwicklungsumgebung · Fehlerbehandlung   |   VB-Versionen: VB4, VB5, VB605.07.03
Fehler mit OnError Goto / Resume Next abfangen

Fehler abfangen, überspringen und Fehlerbehandlung abschalten

Autor:   Thomas FöckingBewertung:  Views:  92.627 
foecking.deSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11kein Beispielprojekt 

Viele kennen die Fehlerbehandlung On Error. Hier ein kleines Beispiel:

Sub fehler1()
  ' Bei Fehler nach err_fehler1 verzweigen
  On Error Goto err_fehler1
  x = 5 / 0
  Exit Sub
 
err_fehler1:
  Msgbox Err.Description
End Sub

Bei Division durch 0 erfolgt ein Fehler. Somit wird bei der Sprungmarke err_fehler1 fortgefahren. Vielleicht möchte man den Fehler ignorieren und normal mit dem Ablauf des Codes fortfahren. Dann müsste man On Error Resume Next erwenden:

Sub fehler2()
  ' Fehler ignorieren
  On Error Resume Next
  x = 5 / 0
  x = 1 / 2
  MsgBox x
End Sub

Einige Programmteile möchte man aber nicht unter Fehlerbehandlung haben, so würde man es folgendermaßen implementieren:

Sub fehler2()
  ' Fehler ignorieren
  On Error Resume Next
  x = 5 / 0
 
  ' Fehlerbahendlung ausschalten!
  On Error Goto 0
  x = 1 / 0
End Sub

Die erste Division durch Null wird übersprungen (Resume Next), wohingegen die zweite Division durch Null zu einem Laufzeitfehler führt, da mit On Error Goto 0 die Fehlerbehandlung wieder ausgeschaltet wird.
 



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.