Обработка исключений (отладка)
Обновлен: Ноябрь 2007
Этот раздел применим для следующих версий.
Выпуск |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
Экспресс-выпуск |
||||
Standard |
||||
Pro и Team |
Условные обозначения:
Применимо |
|
Неприменимо |
|
Команда или команды по умолчанию скрыты. |
Исключение — это отклонение от нормального выполнения программы. Исключения часто указывают на проблемы, которые необходимо отладить. При возникновении исключения отладчик записывает его сообщение в окно Вывод, если эта функциональная возможность не отключена в диалоговом окне Страница "Общие", папка "Отладка", диалоговое окно "Параметры".
Отладчик может как прерывать выполнение при возникновении исключения, так и не прерывать его.
Если исключение (не на ASP.NET) происходит и не обрабатывается, отладчик всегда приостанавливает выполнение.
Можно настроить отладчик на приостановку выполнения сразу же после вызова исключения, до вызова любого обработчика. Дополнительные сведения см. в разделе Практическое руководство. Прерывание выполнения при создании исключения.
Если отладка происходит с Практическое руководство. Переход в пошаговый режим выполнения "Только мой код", существует третий вариант. Можно настроить отладчик на прерывание по любому исключению, не обрабатываемому в коде пользователя ("Моем коде"). Дополнительные сведения см. в разделе Практическое руководство. Прерывание выполнения при создании не обработанных пользовательским кодом исключении.
В ASP.NET есть обработчик исключений верхнего уровня, который обрабатывает исключения и выводит страницу ошибки в обозревателе. Этот обработчик исключений верхнего уровня предотвратит прерывание выполнения по необработанному исключению, если не включен режим "Только мой код". При отладке ASP.NET следует всегда включать режим "Только мой код".
Помните, если исключение возникает и не обрабатывается, отладчик всегда прерывает выполнение. Параметр "Не обработанное пользовательским кодом" не меняет этого.
Отладчик Visual Studio распознает следующие категории исключений:
Исключения С++
Исключения среды CLR
Управляемые помощники по отладке
Проверки времени выполнения машинного кода
Исключения Win32
Для большинства исключений предусмотрены обработчики, реагирующие на возникновение исключения. Это дает программе возможность выйти из нестандартной ситуации. Проверки времени выполнения машинного кода не имеют обработчиков.
В приложениях, написанных на Visual Basic, все ошибки представляются отладчиком как исключения, даже при использовании обработчиков ошибок типа On Error.
Для Visual Basic и C# отладчик теперь предоставляет новую возможность — Помощник по исключениям, содержащий дополнительные сведения при возникновении исключения.
Сведения по обработке исключений см. в следующих разделах:
Практическое руководство. Прерывание выполнения при создании исключения
Практическое руководство. Анализ системного кода после исключения
Практическое руководство. Настройка проверок во время выполнения машинного кода
Использование проверки кода во время выполнения без библиотеки среды выполнения C
-
Примечание. (Только для Visual Basic и Visual C#) Если неперехваченное исключение возникает при отключенном помощнике по исключениям, то псевдопеременная $exception добавляется в окно Локальные. Можно использовать эту псевдопеременную для просмотра сведений об исключении.
См. также
Задачи
Практическое руководство. Переход в пошаговый режим выполнения "Только мой код"