Проверка исключения с помощью помощника по исправлению ошибок
Проблема с исключениями может возникать независимо от ваших технологий или компетентности. Выяснить, почему исключения вызывают проблемы в коде, может быть непросто. Мы хотим упростить для вас отладку исключения в Visual Studio за счет предоставления значимых сведений об исключении, которые помогут вам быстрее решить проблему.
Приостановка на исключении
Когда отладчик прерывает работу на исключении, справа от соответствующей строки кода появляется значок ошибки исключения. Рядом со значком исключения появится немодальный помощник по исправлению ошибок.
Проверка сведений об исключении
Вы можете сразу выяснить тип исключения и прочитать сообщение об исключении в помощнике по исправлению ошибок, а также узнать, является ли это исключение созданным или необработанным. Чтобы проверить и просмотреть свойства объекта исключения, щелкните ссылку Показать сведения.
Анализ пустых ссылок
Начиная с Visual Studio 2017, для кода .NET и C/C++ при нажатии NullReferenceException
или нажатии на нее AccessViolation
отображаются сведения об анализе null в вспомогательном компоненте исключений. Анализ отображается в виде текста под сообщением об исключении. На рисунке ниже информация представлена в формате "у s было значение null".
Примечание.
Для анализа пустых ссылок в управляемом коде требуется .NET версии 4.6.2. Анализ пустых значений не поддерживается для универсальной платформы Windows (UWP) и других приложений .NET Core. Он доступен только при отладке кода, в котором нет оптимизаций JIT-кода.
Настройка параметров исключений
Отладчик можно настроить на прерывание при появлении исключения текущего типа в разделе Параметры исключений помощника по исправлению ошибок. Если отладчик останавливается при возникновении исключения, дальнейшую остановку при исключениях такого типа можно остановить, сняв соответствующий флажок. Если вам не нужна остановка при возникновении конкретно этого исключения в конкретно этом модуле, установите флажок рядом с именем модуля в разделе За исключением случаев, когда вызвано из: в окне Параметры исключений.
Проверка внутренних исключений
Если исключение содержит внутренние исключения (InnerException), их можно просмотреть в помощнике по исправлению ошибок. Если исключений несколько, между ними можно перемещаться с помощью стрелок влево и вправо, расположенных над стеком вызовов.
Проверка повторно созданных исключений
Если исключение thrown
, в помощнике по исправлению ошибок отображается стек вызовов с того момента, когда исключение было создано в первый раз. Если исключение было создано несколько раз, стек вызовов отображается только с момента исходного исключения.
Проверка асинхронных исключений (.NET)
Начиная с .NET 9 отладчик Visual Studio автоматически прерывает работу при возникновении исключения в коде платформы .NET. Это упрощает отладку асинхронного кода, особенно в ASP.NET, так как исключения часто возникают через асинхронные границы.
Просмотр стека вызовов
Начиная с Visual Studio 2022 версии 17.3, можно просматривать кадры стека исключений в окне стека вызовов. Для асинхронных исключений это позволяет быстро загрузить символы или найти источники и перейти непосредственно на сайт исключения. Кадры стека исключений в окне "Стек вызовов" предоставляют стандартные функции стека вызовов, такие как автоматическая навигация, быстрое переключение между кадрами, загрузкой символов и декомпиляциями, чтобы вернуться к исходному коду, в котором возникло исключение.
Получение помощи по искусственному интеллекту
Если у вас есть Copilot, вы можете получить помощь по искусственному интеллекту во время отладки исключений. Просто найдите кнопку Ask Copilot. В этих сценариях Copilot уже знает контекст для ваших вопросов, поэтому вам не нужно предоставлять контекст в чате. Дополнительные сведения см. в разделе Отладка с помощью Copilot.
Совместное использование сеанса отладки с Live Share
В вспомогательном средстве исключений можно запустить сеанс Live Share с помощью ссылки Start Live Share session.... Любой пользователь, присоединяющийся к сеансу Live Share, может просмотреть вспомогательный элемент исключения вместе с другими сведениями об отладке.