10.1.2.3. Использование оператора On Error (для VB.Net)

Источник здесь. [перевод не проверен] ;[Переводчик: Богданов Михаил]

    В VB.NET, ошибки времени выполнения могут быть заблокированы оператороми Try или On Error. Эти операторы буквально устанавливают общие ловушки в приложении. При возникновении ошибки, эти операторы автоматически перенаправляют ее вашему обработчику ошибки.

    Выражение On Error имеет три формы:
  • On Error Resume Next
  • On Error GoTo Label
  • On Error GoTo 0
Примечание:
    Операторы Try и On Error не могут быть использованы одновременно в одной процедуре.

Выражение On Error Resume Next

    Выражение On Error Resume Next используется когда вы хотите проигнорировать ошибки. Это выражение перехватывает ошибку и вместо отображения сообщения об ошибке и завершения программы передает управление следующей строчке кода.

    Например, если вы хотите создать процедуру для перебора в пространстве модели и изменения цвета каждого объекта (прим. преводчика. читай примитива), вы знаете, что AutoCAD выдаст ошибку при попытке сменить цвет объекта на заблокированном слое. Вместо завершения программы пропустите объекты на заблокированном слое и продолжайте обработку остальных объектов. On Error Resume Next позволит вам это сделать.

Выражение On Error GoTo Label

    Выражение On Error GoTo Label используется когда вы хотите написать явную обработку ошибок. Это выражение ловит ошибки, подавляет вывод сообщения об ошибке и завершение программы. И перескакивает в специальное место в вашем коде. Ваш код затем может реагировать на ошибку так, как это нужно вашему приложению. Например может перейти к началу программы используя номер ноль строки (прим. переводчика On Error GoTo 0), или метку, такую например, как ErrNoFileFound. Именованные метки определяются, используя следующий синтаксис: 

ErrNoFileFound:

Использование объекта Err при обработке ошибок

    Объект исключения используется с оператором Try, а объект Err, используется для получения информации о типе ошибки, которая перехвачена выражением On Error. Этот объект имеет несколько свойств: Number, Description, Source, HelpFile, HelpContext, и LastDLLError. Свойства объекта содержат информацию о последней ошибке. Наиболее важные свойства Number, Description. Свойство Number содержит уникальный код ошибки связанный ошибкой, а свойство Description содержит сообщение ошибки, которое должно было быть отображено.

    В вашем обработчике вы можете сравнить номер ошибки и ожидаемого значения. Это поможет вам определить ошибку, которая произошла. После того, как вы узнали, с какой ошибкой вы имеете дело, вы можете принять соответствующие меры.

Comments