Partilhar via


Inspecionar uma exceção usando o Auxiliar de exceção

Lidar com exceções é um problema comum, independentemente da sua tecnologia ou nível de especialização. Pode ser uma experiência frustrante descobrir por que as exceções estão causando problemas em seu código. Quando você está depurando uma exceção no Visual Studio, queremos diminuir essa frustração fornecendo informações de exceção relevantes para ajudá-lo a depurar seu problema mais rapidamente.

Auxiliar de exceção

Pausa na exceção

Quando o depurador para numa exceção, um ícone de exceção aparece à direita dessa linha de código. Um auxiliar de exceção não modal aparecerá perto do ícone de exceção.

Auxiliar de exceção ao lado de uma linha de código

Inspecionar informações de exceção

Você pode ler instantaneamente o tipo de exceção e a mensagem de exceção no Assistente de Exceções, e se a exceção foi lançada ou não foi tratada. Você pode inspecionar e exibir propriedades do objeto Exception clicando no link Exibir detalhes.

Analisar referências nulas

A partir do Visual Studio 2017, para código .NET e C/C++, quando você pressiona um NullReferenceException ou um AccessViolation, você vê informações de análise nulas no Auxiliar de Exceção. A análise é exibida como texto abaixo da mensagem de exceção. Na ilustração abaixo, a informação é apresentada como "s foi nulo."

Análise nula auxiliar de exceção

Observação

A análise de referência nula em código gerenciado requer o .NET versão 4.6.2. Atualmente, não há suporte para análise nula para a Plataforma Universal do Windows (UWP) e quaisquer outros aplicativos .NET Core. Ele só está disponível durante a depuração de código que não tem nenhuma otimização de código Just-In-Time (JIT).

Definir configurações de exceção

Você pode configurar o depurador para interromper quando uma exceção do tipo atual é lançada a partir da seção Configurações de Exceção do Auxiliar de Exceção. Se o depurador estiver pausado em uma exceção lançada, você poderá usar a caixa de seleção para desabilitar a quebra nesse tipo de exceção quando lançada no futuro. Se você não quiser quebrar essa exceção específica quando lançada neste módulo específico, marque a caixa de seleção ao lado do nome do módulo em Exceto quando lançada de: na janela Configurações de exceção.

Inspecionar exceções internas

Se a exceção tiver exceções internas (InnerException, você poderá visualizá-las no Auxiliar de Exceção. Se houver várias exceções presentes, você poderá navegar entre elas usando as setas para a esquerda e para a direita mostradas acima da pilha de chamadas.

Assistente de exceção com exceção interna

Inspecionar exceções relançadas

Nos casos em que uma exceção foi thrown, o Auxiliar de Exceção mostra a pilha de chamadas desde a primeira vez que a exceção foi lançada. Se a exceção foi lançada várias vezes, somente a pilha de chamadas da exceção original é mostrada.

Auxiliar de exceção com exceções relançadas

Inspecionar exceções assíncronas (.NET)

A partir do .NET 9, o depurador do Visual Studio quebra automaticamente quando um método Task assíncrono lança uma exceção dentro do código do .NET framework. Isso facilita a depuração de código assíncrono, especialmente em ASP.NET, porque as exceções geralmente são lançadas através de limites assíncronos.

Captura de tela do auxiliar de exceção com método assíncrono.

Ver a pilha de chamadas

A partir do Visual Studio 2022 versão 17.3, você pode exibir quadros de pilha de exceção dentro da janela Pilha de chamadas. Para exceções assíncronas, isso adiciona a capacidade de carregar rapidamente símbolos ou localizar fontes e ir diretamente para o site da exceção. Os quadros de exceção na janela Pilha de Chamadas fornecem recursos padrão da pilha de chamadas, como navegação automática, mudança rápida entre quadros, carregamento de símbolos e opções de descompilação para retornar ao código-fonte onde foi lançada a exceção.

Auxiliar de exceção com pilha de chamadas

Obtenha assistência de IA

Se você tiver Copilot, poderá obter assistência de IA enquanto estiver depurando exceções. Basta procurar o Ask Copilotcaptura de tela do botão Ask Copilot. botão. Nesses cenários, o Copilot já sabe o contexto para suas perguntas, então você não precisa fornecer contexto no bate-papo. Para obter mais informações, consulte Debug with Copilot.

Obtenha assistência de IA com o contexto do repositório

Quando você está trabalhando no Visual Studio com um repositório de DevOps do Azure, a análise de exceções com o Copilot incorpora o contexto do repositório para uma resolução de exceções mais inteligente, rápida e precisa. O Copilot faz referências cruzadas ao seu repositório aberto, incluindo bugs anteriores, problemas, solicitações pull e correções históricas para fornecer informações acionáveis diretamente relevantes para sua base de código.

Quando encontrar uma exceção:

  • O copiloto identifica as causas raiz mais prováveis, os componentes afetados e as possíveis correções.
  • O Copilot aproveita o conhecimento do repositório para destacar problemas anteriores semelhantes e suas resoluções, ajudando você a aprender com as correções existentes.
  • Exceções complexas são analisadas com contexto completo, conectando o comportamento do tempo de execução a padrões históricos, para que você possa entender valores inesperados ou incorretos rapidamente.
  • Ao apresentar correções e insights relevantes automaticamente, o Copilot economiza tempo e reduz a tentativa e erro muitas vezes necessários para depurar problemas desafiadores.

Compartilhar uma sessão de depuração com o Live Share

No Auxiliar de exceção, você pode iniciar uma sessão do do Live Share usando o link Iniciar sessão do Live Share.... Qualquer pessoa que participe da sessão do Live Share pode ver o Auxiliar de Exceção junto com qualquer outra informação de depuração.