Нужно ли нам создавать обработчик ошибок для каждой подпрограммы?

Я копирую фрагмент кода из SO в качестве примера. Подпрограмма содержит обработчик ошибок. Следует ли создавать обработчик ошибок для всех подпрограмм?

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

И, кстати, как происходит поток управления внутри подпрограммы, когда исполнитель кода встречает Exit Sub , Конец подпрограммы и Продолжить ? И когда он встречает метку, такую ​​как ProcError: во время выполнения, выполняет ли он ее или пропускает?

5
задан Jean-François Corbett 27 May 2011 в 08:33
поделиться