Come intercettare errori ADSI
VBScript offre solo un modo per intercettare gli errori: gestione degli errori inline. Un gestore errori inline inizia con l'istruzione On Error Resume Next . Poiché In caso di ripresa errore Successivo impedirà a qualsiasi errore di arrestare l'esecuzione dello script fino alla fine dell'ambito da cui viene chiamato On Error Resume Next , è necessario controllare il valore di Err a ogni punto dopo l'istruzione On Error Resume Next in cui si prevede che si verifichi un errore. L'esempio seguente illustra la gestione degli errori inline in uno script ADSI:
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
Dopo ogni posizione in cui è probabile che lo script verifichi un errore, è presente un'istruzione If Err . L'oggetto Err contiene il codice di errore dell'ultimo errore che si è verificato durante l'esecuzione dello script. Se non si è verificato alcun errore, Err sarà sempre zero (0). Nell'esempio precedente, un errore causerà il passaggio dell'esecuzione alla subroutine AdsiErr , che controlla il valore di Err.Number per gli errori previsti. Invece di morire con un messaggio di errore criptico, lo script fornirà una spiegazione in qualche modo migliore per il motivo per cui si è interrotta l'esecuzione.
Tenere presente che all'interno dell'ambito in cui viene chiamato On Error Resume Next , qualsiasi errore che si verifica dopo la chiamata On Error Resume Next verrà ignorata. Ciò può rendere più difficile il debug di uno script se si dimentica di controllare il valore di Err in posizioni appropriate. Ovunque sia probabile che si verifichi un errore, assicurarsi di controllare il valore di Err.
Quando si esegue inizialmente il debug dello script, è possibile che lo script interrompa l'esecuzione e visualizzi il numero di riga che causa un errore, quindi aggiungere i gestori degli errori dopo che il flusso del programma di base è corretto.