Inspección de una excepción mediante el asistente de excepciones

Tratar con excepciones es un problema común, independientemente de su tecnología o nivel de experiencia. Puede ser una experiencia frustrante averiguar por qué las excepciones causan problemas en el código. Al depurar una excepción en Visual Studio, queremos reducir esa frustración al proporcionarle información de excepción pertinente para ayudarle a depurar el problema más rápido.

Asistente de Excepciones

Pausa en la excepción

Cuando el depurador se interrumpe en una excepción, aparece un icono de error de excepción a la derecha de esa línea de código. Un asistente de excepciones no modal aparecerá cerca del icono de excepción.

asistente de excepciones junto a una línea de código

Inspeccionar información de excepción

Puede leer de forma instantánea el tipo de excepción y el mensaje de excepción en la Aplicación auxiliar de excepciones, y si la excepción se inició o no se controló. Puede inspeccionar y ver las propiedades del objeto Exception haciendo clic en el vínculo Ver detalles.

Análisis de referencias nulas

A partir de Visual Studio 2017, tanto para código .NET como para C/C++, cuando se alcanza un NullReferenceException o un AccessViolation, verá información de análisis de nulidad en el Asistente para excepciones. El análisis se muestra como texto debajo del mensaje de excepción. En la ilustración siguiente, la información se muestra como "s era null".

Análisis de valores nulos de la Aplicación auxiliar de excepciones

Nota

El análisis de referencia null en código administrado requiere .NET versión 4.6.2. Actualmente no se admite el análisis null para Universal Windows Platform (UWP) ni para ninguna otra aplicación .NET Core. Solo está disponible durante la depuración de código que no tiene ninguna optimización de código Just-in-Time (JIT).

Configuración de las opciones de excepción

Puede configurar el depurador para que se interrumpa cuando se inicie una excepción del tipo actual desde la sección Configuración de excepciones de la Aplicación auxiliar de excepciones. Si el depurador está en pausa en una excepción iniciada, puede usar la casilla para deshabilitar la interrupción en ese tipo de excepción cuando se inicie en el futuro. Si no desea realizar la interrupción en esta excepción particular cuando se inicia en este módulo concreto, marque la casilla por el nombre del módulo en Excepto si se produce en: en la ventana Configuración de excepciones.

Inspección de excepciones internas

Si la excepción tiene excepciones internas (InnerException, puede verlos en el Asistente de excepciones. Si hay varias excepciones presentes, puede navegar entre ellas mediante las flechas izquierda y derecha que se muestran encima de la pila de llamadas.

Aplicación auxiliar de excepciones con excepción interna de excepción interna

Inspección de excepciones reiniciadas

En los casos en los que el estado de una excepción es thrown, la Aplicación auxiliar de excepciones muestra la pila de llamadas desde la primera vez que se inició la excepción. Si la excepción se produjo varias veces, solo se muestra la pila de llamadas de la excepción original.

Aplicación auxiliar de excepciones con excepciones reiniciadas

Inspeccionar excepciones asincrónicas (.NET)

A partir de .NET 9, el depurador de Visual Studio se interrumpe automáticamente cuando un método Task asincrónico produce una excepción dentro del código del framework .NET. Esto facilita la depuración de código asincrónico, especialmente en ASP.NET, ya que las excepciones a menudo se producen a través de límites asincrónicos.

Captura de pantalla del asistente de excepciones con el método asíncrono.

Ver la pila de llamadas

A partir de la versión 17.3 de Visual Studio 2022, puede ver los marcos de pila de excepciones dentro de la ventana Pila de llamadas. Para las excepciones asincrónicas, esto agrega la capacidad de cargar rápidamente símbolos o localizar orígenes y ir directamente al sitio de la excepción. Los marcos de pila de excepciones dentro de la ventana Pila de llamadas proporcionan características estándar de pila de llamadas, como la navegación automática, el cambio rápido entre los marcos, la posibilidad de carga de símbolos y opciones de descompilación para volver al código fuente donde se produjo la excepción.

Asistente de excepciones con pila de llamadas

Obtención de ayuda para la inteligencia artificial

Si tiene Copilot, puede obtener asistencia de inteligencia artificial mientras depura excepciones. Solo busque el botón Analizar con Copilot o Preguntar a CopilotCaptura de pantalla del botón Preguntar a Copilot. En estos escenarios, Copilot ya conoce el contexto de sus preguntas, por lo que no es necesario proporcionar contexto en el chat. Para obtener más información, consulte Debug with Copilot.

Si Copilot desea acceder al contexto de la ventana Salida para ayudar a analizar el problema, se le pedirá este permiso en la ventana Chat. Si concede permiso, habilitará Copilot para realizar análisis adicionales de la excepción en función de los detalles del tiempo de ejecución. El asistente de excepciones, el análisis de variables, la inspección de código y otros escenarios de depuración obtienen acceso a este contexto para la sesión de depuración actual.

Consigue ayuda de IA con contexto del repositorio

Cuando trabaja en Visual Studio con un repositorio de Azure DevOps, el análisis de excepciones con Copilot incorpora el contexto del repositorio para una resolución de excepciones más inteligente, rápida y precisa. Copilot hace referencias cruzadas a tu repositorio abierto, incluidos errores pasados, problemas, solicitudes de incorporación de cambios y correcciones históricas para proporcionar información procesable directamente relevante para el código base.

Cuando se produce una excepción:

  • Copilot identifica las causas principales más probables, los componentes afectados y las posibles correcciones.
  • Copilot aprovecha el conocimiento del repositorio para resaltar problemas anteriores similares y sus resoluciones, lo que le ayuda a aprender de las correcciones existentes.
  • Las excepciones complejas se analizan con contexto completo, conectando el comportamiento en tiempo de ejecución a patrones históricos, por lo que puede comprender rápidamente valores inesperados o incorrectos.
  • Al exponer las correcciones pertinentes e información automáticamente, Copilot ahorra tiempo y reduce la prueba y el error a menudo necesario para depurar problemas complejos.

Para errores complejos que requieren un diagnóstico completo más allá de una única excepción, puede usar el Agente de depuración. El Agente de depuración proporciona un flujo de trabajo de agente que reproduce, instrumenta y valida correcciones mediante datos en tiempo de ejecución en tiempo real. Para obtener más información, consulte Resolución de errores de tipo agente con el Agente de Depuración.

Uso compartido de una sesión de depuración con Live Share

En la Aplicación auxiliar de excepciones, puede iniciar una sesión de Live Share mediante el vínculo Iniciar sesión de Live Share... . Cualquiera que se una a la sesión de Live Share puede ver la Aplicación auxiliar de excepciones junto con cualquier otra información de depuración.