Я копирую фрагмент кода из 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:
во время выполнения, выполняет ли он ее или пропускает?