首页 新闻 会员 周边 捐助

在什么情况下出现异常(Exception)会使程序(或线程)停止?

0
悬赏园豆:10 [已解决问题] 解决于 2012-05-30 11:34

程序是这样的。

是个跑批程序,有多个跑批模块, 每个模块分为两个线程跑,。 没跑成功一条数据都有日志记录,错误也在这个日志里记录, 通过分析日志发现假如某条数据出现异常,在Catch处记录之后线程便不再执行。我记得只要Try操作之后,除非在Catch中重新Throw异常,否则异常会被标记称已解决,不会令线程终止啊。。

 

请高手指教。谢谢

任延伟的主页 任延伟 | 初学一级 | 园豆:69
提问于:2012-05-28 10:30
< >
分享
最佳答案
0

是的,如果你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);
收获园豆:10
today4king | 老鸟四级 |园豆:3499 | 2012-05-28 10:52
其他回答(2)
0

如果是C++程序的话,严重的异常是无法恢复的,只能是终止程序

2012 | 园豆:21645 (高人七级) | 2012-05-28 10:51
0

被catch的异常应该不会引起线程中止,建议确定一下是否捕获了所有的异常?

dudu | 园豆:29732 (高人七级) | 2012-05-28 14:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册