2009-08-20 17 views

Antwort

1

Um nicht abgefangene Ausnahmen auf UI-Threads nur zu fangen, können Sie Application.ThreadException Ereignis verwenden.

Verwenden Sie AppDomain.Current.UnhandledException, um nicht abgefangene Ausnahmen für alle Threads in der App-Domäne einzufangen. Letzteres erlaubt Ihnen jedoch nicht, die Ausnahme zu verschlucken - Sie können sie im Handler protokollieren, aber sobald sie zurückgegeben wird, wird die Ausnahme an Watson übergeben, wo der übliche Win32-Crash-Dialog angezeigt wird.

+0

Wie würde ich es unterdrücken, wenn ich den zweiten Weg verwende? –

+0

Sie können das nicht tun, das ist von Entwurf. In der Tat sollten Sie nicht - Windows-Anwendungsrichtlinien (denen Sie _need_ folgen müssen, wenn Sie "Certified für Vista" Aufkleber für Ihre App möchten, und möchten möglicherweise trotzdem folgen, denn es ist _the_ Anleitung, wie sich benehmenswürdigen Windows-Anwendungen verhalten sollten) ausdrücklich sagen, dass Fehler über Watson gemeldet werden sollten. –

+0

Also ich denke, ich fange besser alle Ausnahme. –