What does the “On Error Resume Next” statement do?

后端 未结 7 2563
佛祖请我去吃肉
佛祖请我去吃肉 2020-11-29 07:54

I came to some VBScript examples, and I saw the statement On Error Resume Next basically at the beginning of the script.

What does it do?

相关标签:
7条回答
  • 2020-11-29 08:19

    When an error occurs, the execution will continue on the next line without interrupting the script.

    0 讨论(0)
  • 2020-11-29 08:22

    On Error Resume Next means that On Error, It will resume to the next line to resume.

    e.g. if you try the Try block, That will stop the script if a error occurred

    0 讨论(0)
  • 2020-11-29 08:23

    It enables error handling. The following is partly from https://msdn.microsoft.com/en-us/library/5hsw66as.aspx

    ' Enable error handling. When a run-time error occurs, control goes to the statement 
    ' immediately following the statement where the error occurred, and execution
    ' continues from that point.
    On Error Resume Next
    
    SomeCodeHere
    
    If Err.Number = 0 Then
        WScript.Echo "No Error in SomeCodeHere."
    Else
      WScript.Echo "Error in SomeCodeHere: " & Err.Number & ", " & Err.Source & ", " & Err.Description
      ' Clear the error or you'll see it again when you test Err.Number
      Err.Clear
    End If
    
    SomeMoreCodeHere
    
    If Err.Number <> 0 Then
      WScript.Echo "Error in SomeMoreCodeHere:" & Err.Number & ", " & Err.Source & ", " & Err.Description
      ' Clear the error or you'll see it again when you test Err.Number
      Err.Clear
    End If
    
    ' Disables enabled error handler in the current procedure and resets it to Nothing.
    On Error Goto 0
    
    ' There are also `On Error Goto -1`, which disables the enabled exception in the current 
    ' procedure and resets it to Nothing, and `On Error Goto line`, 
    ' which enables the error-handling routine that starts at the line specified in the 
    ' required line argument. The line argument is any line label or line number. If a run-time 
    ' error occurs, control branches to the specified line, making the error handler active. 
    ' The specified line must be in the same procedure as the On Error statement, 
    ' or a compile-time error will occur.
    
    0 讨论(0)
  • 2020-11-29 08:24

    It basically tells the program when you encounter an error just continue at the next line.

    0 讨论(0)
  • 2020-11-29 08:40

    On Error Statement - Specifies that when a run-time error occurs, control goes to the statement immediately following the statement. How ever Err object got populated.(Err.Number, Err.Count etc)

    0 讨论(0)
  • 2020-11-29 08:41

    It's worth noting that even when On Error Resume Next is in effect, the Err object is still populated when an error occurs, so you can still do C-style error handling.

    On Error Resume Next
    
    DangerousOperationThatCouldCauseErrors
    
    If Err Then
        WScript.StdErr.WriteLine "error " & Err.Number
        WScript.Quit 1
    End If
    
    On Error GoTo 0
    
    0 讨论(0)
提交回复
热议问题