Прочитать на английском

Поделиться через


Проверка исключения с помощью вспомогательной службы исключений

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

вспомогательная поддержка для исключений

Приостановка исключения

Когда отладчик прерывает исключение, значок ошибки исключения отображается справа от этой строки кода. Независимый помощник по исключениям появится рядом со значком исключения.

помощник при исключениях рядом со строкой кода

Проверка сведений об исключении

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

Анализ null-ссылок

Начиная с Visual Studio 2017, для кода .NET и C/C++ при нажатии NullReferenceException или AccessViolationвы увидите сведения о анализе null в вспомогательном компоненте исключений. Анализ отображается в виде текста под сообщением об исключении. На рисунке ниже информация представлена как "s было нулевое значение".

вспомогательный класс для анализа исключений на предмет NULL

Примечание

Для анализа ссылок null в управляемом коде требуется .NET версии 4.6.2. Анализ null в настоящее время не поддерживается для универсальной платформы Windows (UWP) и других приложений .NET Core. Он доступен только при отладке кода, который не имеет оптимизации JIT-In-Time кода JIT.

Настройка параметров исключения

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

Проверка внутренних исключений

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

помощник обработки исключений с внутренним исключением

Проверка повторно брошенных исключений

В случаях, когда исключение было thrown, вспомогатель по исключениям отображает стек вызовов при первом возникновении исключения. Если исключение было создано несколько раз, отображается только стек вызовов из исходного исключения.

вспомогательная функция для повторных исключений

Проверка асинхронных исключений (.NET)

Начиная с .NET 9, отладчик Visual Studio автоматически приостанавливает выполнение метода async Task при возникновении исключения в коде .NET фреймворка. Это упрощает отладку асинхронного кода, особенно в ASP.NET, так как исключения часто возникают через асинхронные границы.

скриншот помощника по обработке исключений с асинхронным методом.

Просмотр стека вызовов

Начиная с Visual Studio 2022 версии 17.3, можно просматривать кадры стека исключений в окне стека вызовов. Для асинхронных исключений это позволяет быстро загрузить символы или найти источники и перейти непосредственно на сайт исключения. Кадры стека исключений в окне "Стек вызовов" предоставляют стандартные функции стека вызовов, такие как автоматическая навигация, быстрое переключение между кадрами, загрузка символов и декомпиляция, чтобы вернуться к исходному коду, где было вызвано исключение.

вспомогательный по исключениям с стеком вызовов

Получение помощи по искусственному интеллекту

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

Предоставление общего доступа к сеансу отладки с помощью Live Share

Из вспомогателя исключений можно начать сеанс Live Share, используя ссылку Начать сеанс Live Share.... Любой, кто присоединится к сеансу Live Share, сможет увидеть вспомогатель исключений вместе с другими сведениями об отладке.