Compartilhar via


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

Lidar com exceções é um problema comum, independentemente de sua tecnologia ou nível de experiência. Pode ser uma experiência frustrante descobrir por que as exceções estão causando problemas em seu código. Ao depurar 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.

Assistente de Exceção

Pausar na exceção

Quando o depurador para em uma exceção, um ícone de erro da exceção aparece à direita dessa linha de código. Um auxiliar de exceção não modal aparecerá próximo ao ícone de exceção.

auxiliar 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 e a mensagem da exceção no Auxiliar de Exceção e se a exceção foi lançada ou sem tratamento. 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ê atinge 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, as informações são mostradas como " foi nulo".

análise nula do auxiliar de exceção Análise nula do auxiliar de exceção

Nota

A análise de referência nula no código gerenciado requer o .NET versão 4.6.2. No momento, não há suporte para a análise nula para a UWP (Plataforma Universal do Windows) e qualquer outro aplicativo .NET Core. Ela só está disponível durante a depuração de código que não tem nenhuma otimização de código JIT (just-in-time).

Definir configurações de exceção

Você pode configurar o depurador para interromper quando uma exceção do tipo atual for gerada na seção Configurações de Exceção do Auxiliar de Exceção. Se o depurador estiver em pausa em uma exceção lançada, você poderá usar a caixa de seleção para desabilitar a interrupção nesse tipo de exceção se ela for lançada no futuro. Se você não quiser interromper nessa exceção específica quando ela for lançada neste módulo em particular, marque a caixa de seleção próxima do nome do módulo em Exceto quando for lançada de: na janela Configurações da Exceção.

Inspecionar exceções internas

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

Assistente de exceção Auxiliar 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 em que a exceção foi lançada. Se a exceção tiver sido gerada várias vezes, somente a pilha de chamadas da exceção original será mostrada.

auxiliar de exceção Auxiliar de exceção com exceções lançadas várias vezes

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

A partir do .NET 9, o depurador do Visual Studio é interrompido automaticamente quando um método de Tarefa assíncrona gera uma exceção no código da estrutura do .NET. Isso facilita a depuração de código assíncrono, especialmente em ASP.NET, porque as exceções geralmente são lançadas entre limites assíncronos.

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

Exibir a pilha de chamadas

A partir do Visual Studio 2022 versão 17.3, você pode exibir registro de ativação 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 registros de ativação de exceção dentro da janela Pilha de Chamadas fornecem recursos padrão da pilha de chamadas, como navegação automática, alternância rápida entre quadros, carregamento de símbolos e opções de descompilação para voltar ao código-fonte em que a exceção foi gerada.

Auxiliar de exceção com a pilha de chamadas

Obter assistência de IA

Se você tiver o Copilot, poderá obter assistência de IA enquanto estiver depurando exceções. Basta procurar o botão Ask CopilotCaptura de tela do botão Ask Copilot. Botão. Nesses cenários, Copilot já conhece o contexto de suas perguntas, portanto, você não precisa fornecer contexto por conta própria no chat. Para obter mais informações, consulte Depurar com o Copilot.

Obter assistência de IA com contexto do repositório

Quando você está trabalhando no Visual Studio com um repositório do Azure DevOps, a análise de exceção com o Copilot incorpora o contexto do repositório para uma resolução de exceção mais inteligente, rápida e precisa. Copilot faz referência cruzada ao repositório que você abriu, incluindo bugs passados, problemas, pull requests e correções históricas para fornecer insights acionáveis diretamente pertinentes ao seu código.

Quando você encontra uma exceção:

  • O Copilot 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 passados 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 de runtime a padrões históricos, para que você possa entender valores inesperados ou incorretos rapidamente.
  • Ao exibir automaticamente correções e insights relevantes, o Copilot economiza tempo e reduz a avaliação e o erro geralmente 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 Live Share usando o link Iniciar sessão do Live Share.... Qualquer pessoa que ingressar na sessão do Live Share poderá ver o Auxiliar de Exceção juntamente com outras informações de depuração.