捕获c#中的所有异常

Ale*_*lex 2 c# multithreading exception

我正在用C#开发一个GUI应用程序.

它是一个多线程应用程序,我想NetClient.StartDownloadtry/ catch语句包装所有线程(其中一些我不打开,例如哪个是无阻塞函数),这样如果抛出异常并且未被捕获,我可以记录它并报告基地.

我尝试使用Application.ThreadExceptionAppDomain.CurrentDomain.UnhandledException,但它们似乎只捕获GUI异常.

我需要采用不同的方式处理这个问题吗?

Gis*_*shu 5

每个线程中的代码都需要有一个try-catch.异常不是跨线程编组的......并且未处理的异常只会导致应用程序失效.

要捕获所有异常 - 只需使用基本异常类型.

catch(Exception e) { // log e } 
Run Code Online (Sandbox Code Playgroud)

更新:您可以查看AppDomain.UnhandledException- 处理此事件以在任何线程上记录未处理的异常; 但是你不能阻止应用程序停止运行.欲了解更多信息,请访问 http://www.albahari.com/threading/#_Introduction - 在该页面的末尾.