Обработка ошибок |
Чтобы установить системное прерывание по обнаружению ошибки, поместите оператор On Error туда, где вы хотите активизировать это системное прерывание. Sub CausesAnError() ' Direct procedure flow. On Error GoTo ErrorHandler ' Raise division by zero error. Err.Raise 11 Exit Sub ErrorHandler: ' Display error information. MsgBox "Error number " & Err.Number & ": " & Err.Description End Sub Другая форма оператора On Error Resume Next передает управление оператору, следующему за оператором с ошибкой. Этот оператор приводится ниже . Publ ic Function MyFunctionO On Error Resume Next If Err Then ‘обработка End If Exit Function Resume возвращает управление программой оператору, вызвавшему ошибку, и пытается выполнить его снова. Если это приводит к повторной ошибке, то программа обработки ошибок сработает снова. Если вы используете оператор Resume , то лучше применить счетчик возникновения ошибки. По достижении некоторого предела счетчика следует выйти из процедуры. Resume Next передает управление оператору, следующему за оператором, приведшим к ошибке. Вы можете использовать этот прием только в том случае, если уверены, что ошибка — не критическая и может быть проигнорирована, или если ваш обработчик ошибок откорректирует ситуацию, вызвавшую ошибку. |