Ich verwende das ABP-Framework mit WinForms und ich muss die beste Möglichkeit zum Abfangen einer Ausnahme identifizieren und diese Informationen protokollieren.WinForms Ausnahme Interceptor
Meine WinForms ist eine Multiple-Document Interface (MDI) -Anwendung. Ich füge ein HandleException
in Program.cs hinzu, so dass wenn die Anwendung eine Ausnahme auslöst, ich es in der Protokolldatei protokollieren kann. Aber wenn ich eine Ausnahme in einem ApplicationService
bekomme, wird diese Ausnahme von ABP behandelt und nicht zu WinForms zurückgeworfen, und nichts wird in der Protokolldatei geschrieben.
Muss ich eine Schnittstelle implementieren, um die klassische Protokollierung wie MVC/Angular App zu haben?
UPDATE
fand ich, dass das Problem auf asynchroner Betrieb zusammenhängt. Normalerweise rufe ich an:
await _service.GetProducts();
Wenn eine Ausnahme ausgelöst wird, fängt der Hauptthread es nicht ab. Wenn ich umstelle auf:
AsyncHelper.RunSync(() => _service.GetProducts());
Dann fängt der Haupt Thread den Fehler ab.
@ Albert thk für Ihren Vorschlag, aber auf diese Weise können Sie nicht abfangen async Ausnahme – andmattia