相关:
如果方法抛出ThreadPool.QueueUserWorkItem方法调用的异常,那么抛出异常的位置是什么?还是会被吃掉?
我的意思是它永远不会被抛出调用线程吗?
答案 0 :(得分:4)
不,异常永远不会传播到另一个线程。它最终会崩溃线程,并被运行时捕获。此时,运行时会引发可以观察到异常的AppDomain.UnhandledException事件。
您可以阅读有关此here的更多信息。
答案 1 :(得分:4)
如果未在线程回调中捕获异常将导致应用程序崩溃(除了吞下的ThreadAbortException和AppDomainUnloadedException)。请注意,在.NET 1.1中,吞下了所有异常。行为在.NET 2.0中已更改。
我找到了这个链接:http://msdn.microsoft.com/en-us/library/ms228965.aspx
答案 2 :(得分:1)
未处理的异常会导致.Net 2.0或更高版本的应用程序崩溃。 QUWI代码的异常不会被捕获或转移到另一个线程。
参见例如 https://blog.codinghorror.com/improved-unhandled-exception-behavior-in-net-20/