Введение в обработку исключений

Обновлен: Ноябрь 2007

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

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

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

c68xfk56.alert_note(ru-ru,VS.90).gifПримечание.

Один метод может содержать либо структурную, либо неструктурную обработку исключений, но не то и другое одновременно.

Структурная обработка исключений

При структурной обработке исключений блоки кода инкапсулированы, и с каждым из них связаны один или несколько обработчиков. Каждый обработчик задает определенные условия фильтрации для типов исключений, которые он обрабатывает. Когда исключение вызывается кодом в защищенном блоке, просматривается по порядку набор соответствующих обработчиков и выполняется первый из них с соответствующим условием фильтрации. Один метод может иметь множество блоков структурной обработки исключений, которые могут быть вложены один в другой.

Оператор Try...Catch...Finally используется специально для структурной обработки исключений. Дополнительные сведения см. в разделе Обзор структурной обработки исключений в Visual Basic.

Неструктурная обработка исключений

Оператор On Error используется специально для неструктурной обработки исключений. При неструктурной обработке исключений оператор On Error помещается в начале блока кода. После этого он имеет "область действия" в рамках этого блока и обрабатывает все ошибки, возникающие в его пределах. Если программа встречает другой оператор On Error, то он вступает в силу, а первый оператор становится недействительным. Дополнительные сведения см. в разделе Обзор неструктурной обработки исключений.

См. также

Задачи

Устранение неполадок при обработке исключений

Пошаговое руководство. Структурная обработка исключений

Основные понятия

Типы ошибок

Обзор структурной обработки исключений в Visual Basic

Обзор неструктурной обработки исключений

Ссылки

Оператор On Error (Visual Basic)

Другие ресурсы

Задачи обработки исключений