Что делает оператор “On Error Resume Next”?

Я пришел к некоторым примерам VBScript, и я видел оператор On Error Resume Next в основном в начале сценария.

Что это делает?

60
задан Helen 4 February 2010 в 20:42
поделиться

4 ответа

По сути, он сообщает программе, когда вы сталкиваетесь с ошибкой, просто продолжайте со следующей строки.

79
ответ дан 24 November 2019 в 17:34
поделиться

Стоит отметить, что даже когда 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
39
ответ дан 24 November 2019 в 17:34
поделиться

При возникновении ошибки выполнение продолжится на следующей строке без прерывания сценария.

24
ответ дан 24 November 2019 в 17:34
поделиться

Это означает, что когда происходит ошибка на линии, это говорит 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
12
ответ дан 24 November 2019 в 17:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: