Sto scrivendo una piccola libreria che cattura tutte le eccezioni non gestite, mostra una piccola finestra di dialogo (simile alla solita finestra di dialogo di NF) che offre all'utente la possibilità di inviare l'eccezione allo sviluppatore. Per fare questo, io uso l'UnhandledException-evento del dominio di applicazione in questo modo:UnhandledException Event non funziona?
app.UnhandledException += (object sender, UnhandledExceptionEventArgs e) =>
{
ExceptionHandler handler = new ExceptionHandler((Exception)e.ExceptionObject, ExEntry);
UnhandledExceptionListened(handler);
if (Properties.Settings.Default.ShowStandardExceptionDialog)
{
ExceptionDialog exdialog = new ExceptionDialog(handler);
exdialog.ShowDialog();
}
};
ExceptionHandler e ExEntry sono classi della mia biblioteca. Ma: se si verifica un'eccezione, il compilatore salta in Lambda-Expression, prova a eseguire il debug della prima riga di codice e quindi mostra l'errore verificatosi prima senza eseguire il resto del lambda. Ma se ho appena scritto:
app.UnhandledException += (object sender, UnhandledExceptionEventArgs e) =>
{
ExceptionDialog exdialog = new ExceptionDialog(handler);
exdialog.ShowDialog();
};
funziona perfettamente. Qualcuno ha un'idea del perché questo non funziona?
Avvolgi il tuo codice sorgente in una presa di prova e metti un punto di riferimento nella presa. C'è un'eccezione e se sì cos'è? – TheKingDave
Che dire semplicemente testando la creazione del gestore di eccezioni in un'unità di test? cosa succede di? –