Esiste un modo per disabilitare l'avvolgimento delle eccezioni molto fastidioso di WPF durante il debug?Disabilita il wrapping delle eccezioni WPF per il debug
Un esempio potrebbe essere una finestra che possiede una casella di testo, la casella di testo è associata a una proprietà, il getter su quella proprietà genera un'eccezione che non può essere gestita dal framework di presentazione (lanciare il nuovo StackOverflowException() per esempio).
Quello che sto al previsto è
get
{
throw new StackOverflowException(); // < Exception happened here
}
Invece quello che sto vedendo è ...
No Source Available
Call Stack Location:
PresentationFramework.dll!MS.Internal.Data.PropertyPathWorker.RawValue(int k) + 0x64 bytes
A causa di avvolgimento eccezione di WPF questa eccezione è anche talvolta catturati e spediti poi è ripubblicato o nascosto in profondità all'interno di MS.Internals e impossibile tornare al sito di eccezione effettivo. Questo ci porta a vedere un gigantesco callstack di PresentationFramework.dll, PresentationCore.dll e WindowsBase.dll ma nessun codice utente ad eccezione di App.Main().
Ciò si verifica durante l'associazione, gli eventi richiamati durante la creazione e altre situazioni completamente casuali senza motivo o motivo (eccezione durante il clic del pulsante a volte mi fa questo). Ora sì, posso guardare la traccia dello stack all'interno dell'eccezione, ma quella traccia dello stack è anche praticamente priva di significato perché non posso tornare a quel frame per vedere quali sono le variabili al momento del lancio.
+1. Lo vedo sempre - se il costruttore della mia finestra genera un'eccezione, devo scavare in due livelli di InnerExceptions per scoprire quale fosse l'errore reale. –