Wie Henk Holterman bereits vorgeschlagen hat, sollten Sie Ausnahmen behandeln. Nur die bösartigen, die nicht behandelt werden, sollten für Application.ThreadException verlassen werden. Falls Sie das nicht wissen, können Sie Ihre Nachricht zwar in der Ereignisbehandlungsmethode Application.ThreadException
anzeigen, die Anwendung wird dann jedoch beenden. Bestimmte Ausnahmen werden nicht von Application.ThreadException
abgefangen und Sie müssen mit AppDomain.UnhandledException
Event umgehen. AFAIK Es ist am besten, keine Ausnahmen in Async-Handlern zu werfen (Gurus, korrigiere mich, wenn ich falsch liege). Der beste Weg, um mit ihnen umzugehen, wäre, Ausnahmen auszulösen, wenn Benutzeraufrufe enden oder wenn der Benutzer versucht, Antwortobjekte abzurufen. Bitte beachten Sie, wenn Sie throw exc
Objekt von einem Thread wird es nicht in einem anderen Thread gefangen werden. Um also den Haupt-Thread zu informieren, würde man ein Ereignis auslösen (an dem sich der Haupt-Thread beteiligt hat), an dem Sie das Antwort-Objekt übergeben. Wenn ein Fehler aufgetreten ist, lösen Sie eine Ausnahme im Getter des Antwortobjekts aus, andernfalls geben Sie das Antwortobjekt zurück. Ein anderer Weg wäre, nur ein Ereignis auszulösen, das dem Hauptthread nur die Ausnahme mitteilt.
EDIT: einfach Ihren Kommentar sah:
wir Ausnahme fangen und Seite der Error in asp.net von Einstellung der Fehlerdaten in web.config umleiten. wie in winform zu tun?
Es gibt keinen direkten Weg, es in winforms zu tun. Die Art, wie ich es mache, ist eine HandleError-Methode pro Thread. Diese Methode akzeptiert das Exception-Objekt als Parameter und prüft den Typ der Exception, um ein Meldungsfeld anzuzeigen und/oder zu protokollieren.
zB können wir Ausnahme und umleiten Seite auf die Fehlerseite in ASP.net durch Festlegen der Fehlerdaten in web.config. wie in winform zu tun? –