ABOUT Visual Basic Programmieren Programmierung Download Downloads Tips & Tricks Tipps & Tricks Know-How Praxis VB VBA Visual Basic for Applications VBS VBScript Scripting Windows ActiveX COM OLE API ComputerPC Microsoft Office Microsoft Office 97 Office 2000 Access Word Winword Excel Outlook Addins ASP Active Server Pages COMAddIns ActiveX-Controls OCX UserControl UserDocument Komponenten DLL EXE
Diese Seite wurde zuletzt aktualisiert am 14.08.2000

Diese Seite wurde zuletzt aktualisiert am 14.08.2000
Aktuell im ABOUT Visual Basic-MagazinGrundlagenwissen und TechnologienKnow How, Tipps und Tricks rund um Visual BasicActiveX-Komponenten, Controls, Klassen und mehr...AddIns für die Visual Basic-IDE und die VBA-IDEVBA-Programmierung in MS-Office und anderen AnwendungenScripting-Praxis für den Windows Scripting Host und das Scripting-ControlTools, Komponenten und Dienstleistungen des MarktesRessourcen für Programmierer (Bücher, Job-Börse)Dies&Das...

Themen und Stichwörter im ABOUT Visual Basic-Magazin
Code, Beispiele, Komponenten, Tools im Überblick, Shareware, Freeware
Ihre Service-Seite, Termine, Job-Börse
Melden Sie sich an, um in den vollen Genuss des ABOUT Visual Basic-Magazins zu kommen!
Informationen zum ABOUT Visual Basic-Magazin, Kontakt und Impressum

Zurück...

Fehlerbehandlung verschachtelt

Zurück...


Anzeige

(-hg) mailto:hg_onerrorgotominus1@aboutvb.de

Laufzeitfehler abfangen und in einer Fehlerbehandlungsroutine behandeln und gegebenenfalls bereinigen, ist ein oberstes Gebot. Eine solche Fehlerbehandlungsroutine ist selbst jedoch auch nicht gegen Fehler gefeit. Das Problem ist nur: Visual Basic erlaubt Ihnen offensichtlich nicht, dazu erneut eine weitere Fehlerbehandlung einzuschalten, gewissermaßen verschachtelte Fehlerbehandlungen anzulegen. Auch das ausdrückliche Abschalten der vorhergehenden Fehlerbehandlung mit On Error GoTo 0 nützt nichts.

Ein wenig Scham wegen der ganzen etwas vorsintflutlichen GoTo-Technik der Fehlerbehandlung mag vielleicht der Grund sein, weswegen Microsoft nicht noch eine weitere Anweisung dieses Strickmusters offengelegt und dokumentiert hat. Aber es gibt sie, sowohl in VB 6 als auch schon in VB 5:

On Error GoTo -1

Mit dieser Anweisung können Sie beispielsweise nach einem Sprung in eine Fehlerbehandlungsroutine die übergeordnete Fehlerbehandlung vollends abschalten und danach eine neue Fehlerbehandlung aktivieren.

Dieses "vollends abschalten" wirkt allerdings im wortwörtlichen Sinne: Anweisungen wie Resume und Resume Next verlieren ihren Bezug und sind daher nicht mehr möglich. Der Rücksprung kann dann nur noch über ein GoTo zu einer Sprungmarke an der Stelle, an der der übergeordnete Fehler auftrat, erfolgen. Lediglich auf der jeweils untersten Ebene funktionieren ein Resume oder ein Resume Next wie gewohnt.

Private Sub Test()
  Dim nResult As Double
  
  On Error GoTo Test_Error1
  
  nResult = 1 / 0

Test_Error1_Return:
  Exit Sub
  
Test_Error1:
  On Error GoTo -1
  On Error GoTo Test_Error2
  
  nResult = 1 / 0
  
Test_Error2_Return:
  GoTo Test_Error1_Return
  
Test_Error2:
  MsgBox "Fehler in Fehlerbehandlung konnte abgefangen werden."
  On Error GoTo -1
  On Error GoTo Test_Error3
  
  nResult = 1 / 0
  
Test_Error3_Return:
  GoTo Test_Error2_Return
  
Test_Error3:
  MsgBox "Fehler in Fehlerbehandlung der Fehlerbehandlung " _
   & "konnte abgefangen werden."
  Resume Next
End Sub

Test-Projekt zu On Error GoTo -1 (onerrorgotominus1.zip - ca. 2,4 KB)


Artikel
Zum Download-Bereich dieses Artikel
Mail an den Autor dieses Artikels

KnowHow
Zur KnowHow-Übersicht

KnowHow-Themen
Themen - Allgemeines
Themen - Entwicklungsumgebung (VB-IDE)
Themen - Forms
Themen - Steuerelemente (Controls)
Themen - Grafik
Themen - Dateien
Themen - UserControls
Themen - Einsteiger-Tipps
Themen - Wussten Sie...?

Übersicht nach Titeln in alphabetischer Reihenfolge
Übersicht nach Erscheinungsdatum

Schnellsuche



Zum Seitenanfang

Copyright © 1999 - 2017 Harald M. Genauck, ip-pro gmbh  /  Impressum

Zum Seitenanfang

Zurück...

Zurück...

Download Internet Explorer