Compartilhar via


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

Lidar com exceções é um problema comum, independentemente da tecnologia ou do seu nível de experiência. Pode ser uma experiência frustrante descobrir porque 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 ajudar você a depurar o problema mais rapidamente.

Auxiliar 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 da exceção.

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

Inspecionar informações da 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 ver as propriedades do objeto da Exceção 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 "s era nulo".

Análise nula do auxiliar de exceção

Observação

A análise de referência nula no código gerenciado exige o .NET versão 4.6.2. Atualmente, não há suporte para análise nula para a UWP (Plataforma Universal do Windows) e outros aplicativos .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 para a esquerda e para a direita mostradas acima da pilha de chamadas.

Auxiliar de exceção com exceção interna

Inspecionar exceções relançadas

Nos casos em que uma exceção tenha sido thrown, o Auxiliar de Exceção mostra a pilha de chamadas desde a primeira vez em que ela foi gerada. 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 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 Task assíncrono gera uma exceção no código do .NET Framework. Isso facilita a depuração de código assíncrono, especialmente no ASP.NET, porque as exceções com frequência são geradas entre limites assíncronos.

Captura de tela do auxiliar de exceção com 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. No caso de exceções assíncronas, isso adiciona a capacidade de carregar rapidamente símbolos ou localizar fontes e ir diretamente para o local 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 pilha de chamadas

Obter ajuda de IA

Caso tenha o Copilot, você pode obter ajuda de IA ao depurar exceções. Basta procurar o botão Pergunte ao Copilot Captura de tela do botão Perguntar ao Copilot.. Nesses cenários, o Copilot já sabe o contexto das perguntas, então você não precisa fornecê-lo no chat. Para obter mais informações, consulte Depurar com o Copilot.

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.