Depurar exceções do ASP.NET
A depuração de exceções é uma parte importante do desenvolvimento de um aplicativo ASP.NET robusto. Informações gerais sobre como depurar exceções encontram-se em Gerenciando Exceções com o Depurador.
Para depurar as exceções não tratadas do ASP.NET, você deve verificar se o depurador é interrompido para elas. O runtime do ASP.NET possui um manipulador de exceção de nível superior. Portanto, por padrão, o depurador nunca é interrompido em exceções não tratadas. Para entrar no depurador quando uma exceção é lançada, é necessário selecionar a configuração Interromper quando Lançado para essa exceção específica na caixa de diálogo Exceções.
Se você tiver habilitado a opção Apenas Meu Código, Interromper quando Lançado não fará com que o depurador seja interrompido imediatamente se uma exceção for lançada em um método .NET ou em outro código do sistema. Em vez disso, a execução continua até que o depurador atinja código que não seja do sistema, e então é interrompida. Como resultado, você não precisará percorrer o código do sistema quando ocorrer uma exceção.
O recurso Apenas Meu Código lhe dá outra opção que pode ser útil: Continuar Quando Não For Tratado no Código do Usuário. Se você desabilitar essa configuração para uma exceção, o depurador interromperá a execução no código do usuário, mas somente se a exceção não for capturada e tratada pelo código do usuário. Essa configuração anula o efeito do manipulador de exceção de nível superior do ASP.NET, pois esse manipulador está em código de não usuário.
Para ativar a depuração de exceções do ASP.NET com Apenas Meu Código
No menu Depurar, clique em Windows>Configurações de exceção.
A caixa de diálogo Exceções é exibida.
Em Exceções de Common Language Runtime, selecione a linha para a exceção que você deseja interromper quando ela for lançada.
Se você deseja desabilitar Continuar Quando Não Tratado no Código do Usuário, clique com o botão direito do mouse na linha e desmarque a opção, se ela já estiver selecionada.
Para usar a configuração Não manipulado pelo usuário, Apenas Meu Código deve estar habilitada.
Para usar as práticas recomendadas para o tratamento de exceção do ASP.NET
- Coloque blocos de
try ... catch
em torno do código que pode lançar exceções que você pode prever e sabe como manipular. Por exemplo, se o aplicativo estiver fazendo chamadas para um serviço Web XML ou diretamente para o SQL Server, o código deve estar em blocos try … catch porque várias exceções podem ocorrer.