Иллюстрированный самоучитель по VB.NET

       

Обработка ошибок в VB .NET


Обработка ошибок в VB .NET

  • Проверка ошибок и обработка исключений
  • Подготовка к структурной обработке исключений
  • Анализ исключений
  • Наличие нескольких секций Catch
  • Инициирование исключений
  • Иерархия исключений
  • Исключения как замена для goto
  • Секция Finally
  • Рекомендации по использованию исключений
  • До настоящего момента мы делали вид, что в наших программах ошибок не бывает. Но даже в самой надежной программе иногда возникают непредвиденные ситуации — например, такие, как потеря сетевого соединения или отсутствие бумаги в принтере. Конечно, программист в этом не виноват, но винить пользователя в разрыве связи тоже было бы несправедливо. По крайней мере, в таких ситуациях программа не должна завершаться аварийно. Она должна:

  • сохранить информацию об ошибке или иным способом известить о ней пользователя;

  • предоставить пользователю возможность сохранить текущие результаты;
  • корректно завершить работу, если это возможно.

    Впрочем, выполнить эти требования бывает непросто. Сетевой код обычно никак не связан с объектами, состояние которых требуется сохранить. Соответственно, программисту нужны средства для передачи управления и для оповещения других объектов о происходящем, чтобы они могли принять нужные меры.

    Непредвиденные ситуации возникают и в хорошо написанных программах, но в плохо написанных программах они возникают чаще. Например, если данные не проверяются перед использованием, может возникнуть ошибка деления на 0 или переполнение контейнера, не рассчитанного на такой объем данных. Вы как программист обязаны проследить за тем, чтобы этого не случилось. Какую бы форму обработки ошибок вы ни избрали, она все равно не заменит проверки данных перед использованием!

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

    Итак, в отличие от прежних версий VB в VB .NET поддерживается механизм структурной обработки исключений (или просто обработки исключений).
    В этой главе вы не только познакомитесь с синтаксисом обработки исключений в приложениях VB .NET, но и узнаете, какими преимуществами обладает этот механизм. В частности, при обработке исключений отпадает необходимость даже в более или ме-

    нее оправданном применении GoTo, описанном в главе 3. Однако ничто хорошее не дается бесплатно, поэтому вы также должны помнить о некоторых тонкостях, связанных со структурной обработкой исключений.

    Читатели, привыкшие к синтаксису прежних версий VB, могут продолжать использовать старую конструкцию On Error. Но в новых программах это выглядит довольно глупо. Давно пора отказаться от архаичного способа обработки ошибок, появившегося на заре развития вычислительной техники! (Одновременное использование двух способов в одной процедуре не разрешается.)




    Содержание раздела