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