Я пришел к некоторым примерам VBScript, и я видел оператор On Error Resume Next
в основном в начале сценария.
Что это делает?
По сути, он сообщает программе, когда вы сталкиваетесь с ошибкой, просто продолжайте со следующей строки.
Стоит отметить, что даже когда On Error Resume Next
действует, объект Err все еще заполняется при возникновении ошибки, так что вы все еще можете делать обработку ошибок в стиле Си.
On Error Resume Next
DangerousOperationThatCouldCauseErrors
If Err Then
WScript.StdErr.WriteLine "error " & Err.Number
WScript.Quit 1
End If
On Error GoTo 0
При возникновении ошибки выполнение продолжится на следующей строке без прерывания сценария.
Это означает, что когда происходит ошибка на линии, это говорит vbscript продолжить выполнение, не прерывая скрипт. Иногда On Error
следует за меткой Goto
, чтобы изменить поток выполнения, что-то вроде этого в блоке кода Sub
, теперь вы знаете, почему и как использование GOTO
может привести к появлению спагетти кода:
Sub MySubRoutine() On Error Goto ErrorHandler REM VB code... REM More VB Code... Exit_MySubRoutine: REM Disable the Error Handler! On Error Goto 0 REM Leave.... Exit Sub ErrorHandler: REM Do something about the Error Goto Exit_MySubRoutine End Sub