Цель вызова Err.Clear
, чтобы явно очистить объект Err
после того, как вы перехватили и обработали ошибку. MSDN предполагает, что это особенно полезно, когда вы используете отложенную обработку ошибок с On Error Resume Next
.Это говорит о том, что вам действительно следует звонить Err.Clear
после того, как вы обработали обнаруженную ошибку, что бы это ни значило для вашего конкретного приложения.
Вы не предоставили достаточно своихкод, предлагающий тип используемых вами процедур обработки ошибок.Например, если у вас есть On Error Resume Next
в вашем коде над тем блоком, который вы опубликовали, и / или что вы делаете с strErr
для фактической обработки ошибки.Ваш сценарий заканчивается в конце опубликованного раздела?Если это так, вы, вероятно, в чистом виде удаляете вторую Err.Clear
, так как в любом случае во время выполнения скрипта будет невозможно вызвать другую ошибку.
В любом случае, я собираюсь принятьпростой способ и предложить вам сделать то же самое: нет абсолютно никакой причины "оптимизировать" этот код, удаляя любые операторы Err.Clear
. Я обещаю, что оператор не является узким местом для скорости выполнения вашего скрипта,Если у вас не возникли проблемы с процедурами обработки ошибок (например, перехват одной и той же ошибки дважды или невозможность перехвата ошибки из-за преждевременной очистки), нет особых причин для беспокойства по поводу «дополнительных» операторов Err.Clear
.