错误处理程序 - 退出Sub与End Sub

20 vb6 error-handling vba

为什么我要退出使用Exit Sub的错误处理程序(处理后)而不是让它转到End Sub?

我确信这很简单.我只是不明白.谢谢你的帮助.

例:

Public Sub SubA()
On Error Goto ProcError

  ''# other code  
  MsgBox FuncA()

ProcExit:  
  Exit Sub

ProcError:  
  MsgBox Err.Description  
  Resume ProcExit
End Sub
Run Code Online (Sandbox Code Playgroud)

Ang*_*ker 26

您的ProcExit标签是您释放所有资源的地方,无论是否发生错误.例如:

Public Sub SubA()
  On Error Goto ProcError

  Connection.Open
  Open File for Writing
  SomePreciousResource.GrabIt

ProcExit:  
  Connection.Close
  Connection = Nothing
  Close File
  SomePreciousResource.Release

  Exit Sub

ProcError:  
  MsgBox Err.Description  
  Resume ProcExit
End Sub
Run Code Online (Sandbox Code Playgroud)

  • 如果"ProcExit"下面出现错误,这不会导致无限循环吗? (9认同)