Gibt es eine elegante Möglichkeit, alle nicht behandelten Ausnahmen in einer Windows Form-Anwendung abzufangen? Ich würde gerne mit ihnen umgehen und sie in eine Protokolldatei schreiben. Ich weiß, dass ASP.NET eins hat. Ich benutze C#.Windows Forms Application Exceptions Überfüllung
0
A
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.
Verwandte Themen
- 1. Windows Forms Application Setup mit einer Datenbank
- 2. Können Sie ein Application Framework für Windows Forms empfehlen?
- 3. windows forms
- 4. IPC Windows Service Windows Forms
- 5. Windows Forms: Windows-Label nicht
- 6. Fehler im Windows Forms Editor
- 7. Registerkartenindex in Windows Forms
- 8. SignalR in Windows Forms
- 9. Windows Forms - ErrorProvider + DataGridView
- 10. Windows Forms RichTextBox Cursorposition
- 11. Windows Forms: Mehrere Standardschaltflächen?
- 12. Refactoring Windows Forms-Anwendung
- 13. Windows Forms MenuStrip Rahmenfarbe
- 14. Windows Forms Endlosschleife Ausnahme
- 15. Klassenname in Windows Forms
- 16. Windows Forms, Lernprogramm?
- 17. Windows Forms - Berichtsdesigner
- 18. Windows Forms-Anwendungsleistung
- 19. AddMessageFilter ohne Windows Forms?
- 20. Windows Forms Sichtbarkeitsproblem
- 21. SharpDX, DirectWrite und Windows Forms
- 22. Windows Forms: Textbox mit Geschichte
- 23. Markieren von Beschriftungen Windows Forms
- 24. WPF mit Windows Forms - STAThread
- 25. Windows Forms Skins in C#
- 26. Windows Forms Kontrollkästchen mit LINQ
- 27. Windows Forms C# .net Bereitstellungsproblem
- 28. Windows Forms klein MenuItem hitbox
- 29. C# -Threading und Windows Forms
- 30. System :: Windows :: Forms :: Formular :: Showdialog()
Wie würde ich es unterdrücken, wenn ich den zweiten Weg verwende? –
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. –
Also ich denke, ich fange besser alle Ausnahme. –