Введение в обработку исключений
Обновлен: Ноябрь 2007
Visual Basic поддерживает как структурную, так и неструктурную обработку исключений (ошибок). Включив в приложение код обработки исключений, можно обработать большинство ошибок, с которыми может столкнуться пользователь, и дать приложению возможность продолжить работу. Структурная и неструктурная обработка исключений позволяет предусматривать возможные ошибки и предотвращать нарушение работы приложения из-за этих ошибок.
Рассмотрим использование обработки исключений в любом методе, использующем операторы, которые могут создавать исключение, вызывать процедуры, создающие исключения, или осуществлять доступ к ним.
Если исключение возникло в методе, который не имеет средств для обработки исключения, оно передается вызывающему или предыдущему методу. Если предыдущий метод также не имеет обработчика исключений, исключение передается туда, где вызван этот метод, и т. д. Поиск обработчика продолжается вверх по стеку вызовов, то есть по последовательности процедур, вызванных в приложении. Если не удается найти обработчик для этого исключения, отображается сообщение об ошибке, и приложение завершает работу.
Примечание. |
---|
Один метод может содержать либо структурную, либо неструктурную обработку исключений, но не то и другое одновременно. |
Структурная обработка исключений
При структурной обработке исключений блоки кода инкапсулированы, и с каждым из них связаны один или несколько обработчиков. Каждый обработчик задает определенные условия фильтрации для типов исключений, которые он обрабатывает. Когда исключение вызывается кодом в защищенном блоке, просматривается по порядку набор соответствующих обработчиков и выполняется первый из них с соответствующим условием фильтрации. Один метод может иметь множество блоков структурной обработки исключений, которые могут быть вложены один в другой.
Оператор Try...Catch...Finally используется специально для структурной обработки исключений. Дополнительные сведения см. в разделе Обзор структурной обработки исключений в Visual Basic.
Неструктурная обработка исключений
Оператор On Error используется специально для неструктурной обработки исключений. При неструктурной обработке исключений оператор On Error помещается в начале блока кода. После этого он имеет "область действия" в рамках этого блока и обрабатывает все ошибки, возникающие в его пределах. Если программа встречает другой оператор On Error, то он вступает в силу, а первый оператор становится недействительным. Дополнительные сведения см. в разделе Обзор неструктурной обработки исключений.
См. также
Задачи
Устранение неполадок при обработке исключений
Пошаговое руководство. Структурная обработка исключений
Основные понятия
Обзор структурной обработки исключений в Visual Basic
Обзор неструктурной обработки исключений
Ссылки
Оператор On Error (Visual Basic)