Pergunta

Eu tenho uma excepção não processada que faz com que a Exceção da caixa de diálogo Assistente para aparecer.

Quando eu clique em Ver Detalhes..., a exceção em si tem alguns valores no objeto personalizado modelo que não irá avaliar a propriedade de grade, mas eu sei que eu posso avaliá-lo na janela verificação imediata.(Neste caso, a grade de propriedades não me aprofundar em uma coleção, mas pode haver outros casos)

Sem alterar o código para adicionar um bloco try, como posso ir para a janela verificação imediata e avaliar expressões no unhanded exceção?

A resposta provavelmente vai ser um pouco de magia que eu só não sei ainda, como ?isso.CurrentException ou

algo envolvendo System.Diagnostics.StackFrame ou, quem sabe.Algo inteligente.

Há uma maneira de navegar para o mesmo usando o depurador do segmento, mas que é bastante complicado.Se você pode levar isso e torná-lo simples, com um invólucro que pode ser uma solução.

Foi útil?

Solução

Você tentar configurar o depurador para quebrar quando a exceção é lançada em vez de apenas quando ela é tratada?

Para fazer isso, vá para o VS2010 menu principal e selecione a opção 'Debug' menu Em seguida, selecione 'Exceções...'

Que abrirá uma caixa de diálogo como:Debug - loading= Exceptions.. menu">

Selecione o Jogado coluna

Agora, quando o seu exceção é lançada e você deve ser capaz de avaliar suas variáveis locais na janela verificação Imediata.

Na guia Locais que eu possa ver o $exceção da variável:Local variables contains $exception

Eu sou capaz de usar o "$" exceção de variável na janela verificação imediata:Immediate Window accessing $exception

Atualização: Também para facilitar a alternância de manipulação de Exceção eu recomendo usar o Exceção De Disjuntor De Extensão Do Visual Studio, que permite alternar a quebra na manipulação de exceção e desactivar a barra de ferramentas em vez de ter para ir até o menu Debug.

Outras dicas

Eu não sei sobre o Visual Studio 2010, mas no Visual Studio 2012 quando ocorre uma exceção não atendida, é mostrada no Locals janela com o nome $exception.

há uma propriedade que não irá avaliar a grade de propriedades

Se a propriedade não pode ser avaliada, o depurador não vai ajudar você como você já viu;daí a janela immediate só iria fazer o mesmo.

Eu tinha um erro de propriedade, que iria lançar uma exceção no VS2010 e fazer com que o depurador falhar quando eu tentativa de avaliá-lo.Null retornado de propriedades não foram agradáveis para o depurador.

Eu recomendo que você vá old school sobre a questão e colocar Rastreamento.Escrever dentro da propriedade e de outros lugares e acompanhar a elaboração de relatórios, na janela de saída em vez disso.

Como rastreamento e depuração no Visual C#

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top