Добрый день. Столкнулся с такой неожиданностью.. Если я в одном участке кода сделал обработку ошибок [vba]
Код
On Error Goto ErrHandler
[/vba] И где-то дальше по коду вызывается процедура, и уже внутри нее происходит исключение, то то выполнение макроса прыгает на метку ErrHandler родителя даже из подпроцедуры! Это правильно? Так и должно быть? Получается, нужно перед процедурами убирать обработку [vba]
Код
On Error Goto 0
[/vba] Несколько обескуражен таким поведением. Подскажите, как правильно тогда использовать обработчики ошибок
Добрый день. Столкнулся с такой неожиданностью.. Если я в одном участке кода сделал обработку ошибок [vba]
Код
On Error Goto ErrHandler
[/vba] И где-то дальше по коду вызывается процедура, и уже внутри нее происходит исключение, то то выполнение макроса прыгает на метку ErrHandler родителя даже из подпроцедуры! Это правильно? Так и должно быть? Получается, нужно перед процедурами убирать обработку [vba]
Код
On Error Goto 0
[/vba] Несколько обескуражен таким поведением. Подскажите, как правильно тогда использовать обработчики ошибокPATRI0T
Сообщение отредактировал PATRI0T - Среда, 21.02.2018, 11:30
Ничего странного. Если вы не делаете обработку ошибки внутри вызываемой процедуры - она выдает ошибку родителю... т.е ошибка появляется и в родительской процедуре, поэтому происходит переход к ErrHandler. Выход - делать обработку ошибки внутри вызываемых процедур дополнительно. например при помощи [vba]
Код
Err.Clear
[/vba]
Ничего странного. Если вы не делаете обработку ошибки внутри вызываемой процедуры - она выдает ошибку родителю... т.е ошибка появляется и в родительской процедуре, поэтому происходит переход к ErrHandler. Выход - делать обработку ошибки внутри вызываемых процедур дополнительно. например при помощи [vba]