A depuração de uma exceção em um bloco catch vazio
Pergunta
Eu sou a depuração de um aplicativo de produção que tem uma erupção de blocos catch vazio suspiro:
try {*SOME CODE*}
catch{}
Existe uma maneira de ver o que a exceção é quando o depurador atinge a pegar no IDE?
Solução
No VS, se você olhar em Moradores da área de sua IDE, enquanto dentro do bloco catch, você terá algo para o efeito de us $EXCEÇÃO que terá todas as informações para a exceção que apenas foi pego.
Outras dicas
No Visual Studio - Debug -> Exceções -> marque a caixa "Linguagem Comum Exceções de tempo de execução" no Lançada Coluna
Você pode escrever
catch (Exception ex) { }
Em seguida, quando uma exceção é lançada e pego aqui, você pode inspecionar ex.
Não é impossível, porque esse bloco de código que diz "eu não me importo com a exceção".Você poderia fazer um global de localizar e substituir com o código a seguir para ver a excepção.
catch {}
com a seguinte
catch (Exception exc) {
#IF DEBUG
object o = exc;
#ENDIF
}
O que isto vai fazer é manter o seu atual não fazer nada para pegar o código de Produção, mas ao executar a DEPURAÇÃO ele irá permitir que você defina pontos de interrupção sobre o objeto.
Se você estiver usando o Visual Studio, há a opção de quebra de sempre que é emitida uma excepção, independentemente de ela não processada ou não.Quando a exceção é lançada, a exceção do auxiliar (talvez só VS 2005 e versões posteriores) irá dizer-lhe que tipo de exceção é.
Bater Ctrl+Alt+E para abrir a exceção de diálogo opções e ative essa opção.
Você não pode adicionar uma Exceção a essa altura e inspecioná-lo?
@sectrean
Que não funciona porque o compilador ignora a Exceção ex valor se não há nada de o utilizar.