Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
VBScript bietet nur eine Möglichkeit zum Abfangen von Fehlern: Inlinefehlerbehandlung. Ein Inlinefehlerhandler beginnt mit der On Error Resume Next-Anweisung . Da On Error Resume Next verhindert, dass alle Fehler die Ausführung des Skripts bis zum Ende des Bereichs beenden, aus dem On Error Resume Next aufgerufen wird, müssen Sie den Wert von Err an jedem Punkt nach der On Error Resume Next-Anweisung überprüfen, wenn Sie erwarten, dass ein Fehler auftreten könnte. Im folgenden Beispiel wird die Inlinefehlerbehandlung in einem ADSI-Skript veranschaulicht:
On Error Resume Next
Set myComputer = GetObject(computerPath)
If Err Then AdsiErr()
' Create the new user account
Set newUser = myComputer.Create("user", username)
newUser.SetInfo
If Err Then AdsiErr()
Sub AdsiErr()
Dim s
Dim e
If Err.Number = &H8000500E Then
WScript.Echo "The user " & username & " already exists."
Elseif Err.Number = &H80005000 Then
WScript.Echo "Computer " & computerPath & " not found. Check the ADsPath and try again."
Else
e = Hex(Err.Number)
WScript.Echo "Unexpected Error " & e & "(" & Err.Number & ")"
End If
WScript.Quit(1)
End Sub
Nach jedem Speicherort, an dem für das Skript wahrscheinlich ein Fehler auftritt, gibt es eine If Err-Anweisung . Das Err-Objekt enthält den Fehlercode des letzten Fehlers, der während der Ausführung des Skripts aufgetreten ist. Wenn kein Fehler aufgetreten ist, ist Err immer null (0). Im vorherigen Beispiel führt ein Fehler dazu, dass die Ausführung zur AdsiErr-Unterroutine springt, die den Wert von Err.Number auf erwartete Fehler überprüft. Anstatt mit einer kryptischen Fehlermeldung zu sterben, gibt das Skript eine etwas bessere Erklärung dafür, warum es nicht mehr ausgeführt wird.
Beachten Sie, dass innerhalb des Bereichs, in dem On Error Resume Next aufgerufen wird, jeder Fehler, der nach dem On Error Resume Next-Aufruf auftritt, ignoriert wird. Dies kann das Debuggen eines Skripts erschweren, wenn Sie vergessen, den Wert von Err an geeigneten Speicherorten zu überprüfen. Wenn Sie einen Fehler erwarten, überprüfen Sie unbedingt den Wert von Err.
(Beim anfänglichen Debuggen des Skripts sollten Sie es einfach zulassen, dass das Skript seine Ausführung anhält und die ansenkende Zeilennummer für einen Fehler anzeigt. Fügen Sie dann die Fehlerhandler hinzu, nachdem der grundlegende Programmflow korrekt ist.)