Inhalte

# Anweisung Resume

Setzt Fehlerinformationen zurück und zeigt an, was als nächstes ausgeführt werden soll.

### Syntax:

         Resume [ [0] | label | Next ]

### Parameter:

0: Setzt Fehlerinformationen zurück und führt die Anweisung, die den Fehler verursacht hat, erneut aus. 0 ist optional.

label: Setzt Fehlerinformationen zurück und setzt die Ausführung am angegebenen Label des aktuellen Unterprogramms fort.

Next: Setzt die Fehlerinformationen zurück und führt die Anweisung aus, die der Anweisung folgt, welche den Fehler verursacht hat.

Fehlerinformationen werden mit den Funktionen Erl, Err und Error$ erstellt.

- Erl: Modulzeilennummer, bei der der Fehler auftritt.

- Err: Fehlernummer.

- Fehler[$]: Fehlerbeschreibung.

Die Verwendung von Resume zum Zurücksetzen von Fehlerinformationen verhindert die Weitergabe der behandelten Bedingung an aufrufende Routinen.

### Fehlercodes:

20 Resume ohne Fehler

## Beispiele:

Typische Fehlerbehandlungsroutinen sind: Warnen des Benutzers, Beheben des Fehlers, Protokollieren von Fehlerinformationen oder erneutes Auslösen von benutzerdefinierten Fehlern, die Erklärungen mit Lösungsanweisungen bereitstellen. Verwenden Sie Resume label, wenn Sie solche Mechanismen benötigen.

          Sub Error_Handling
          try: On Error GoTo catch
              ' Routinecode gehört hier her
              Error 91 ' Beispielfehler
          finally:
              ' Routine-Bereinigungscode gehört hier her
              Exit Sub
          catch:
              Print Erl, Err, Error$
              Resume finally
          End Sub ' Error_Handling

Verwenden Sie Resume Next, wenn Sie beispielsweise Anomalien melden, die bei einem iterativen Prozess aufgetreten sind, der nicht unterbrochen werden darf. In diesem Fall können mehrere Behandlungsroutinen erforderlich sein.

          Sub Iteration
              planets = Array("☿","♀","♁","♂","♃","♄","⛢","♆")
          try:
              On Error GoTo ReportAndProcessNext
              For ndx = -3 To 11 Step 1
                  MsgBox planets(ndx)
              Next
              On Error GoTo 0 ' Stop error catching
          finally:
              Exit Sub
          ReportAndProcessNext:
              Print "Error "& Err &" at line "& Erl &" - "& Error$
              Resume Next
          End Sub ' Iteration

Die Verwendung von Resume ohne Parameter, um die fehlerhafte Anweisung erneut auszuführen, kann in bestimmten Situationen vorkommen. Dies kann jedoch zu einer nie endenden Schleife führen.