是的,如果你catch了应该不会终结进程的,肯定是别的地方出问题了。再就是看你怎么跑多线程的,如果用的Task类,可以试试如下代码尝试找到真的原因:
var task1 = Task.Factory.StartNew(() => { throw new MyCustomException("Task1 faulted."); }) .ContinueWith((t) => { Console.WriteLine("I have observed a {0}", t.Exception.InnerException.GetType().Name); }, TaskContinuationOptions.OnlyOnFaulted);
如果是C++程序的话,严重的异常是无法恢复的,只能是终止程序
被catch的异常应该不会引起线程中止,建议确定一下是否捕获了所有的异常?