Vit*_*mud 2 java multithreading exception executorservice executors
我看到一种行为,我无法解释
我有一个Runnable,它的代码是:
run()
{
print("start");
try{
doSomething();
print("end");
}catch (Exception e){
print("problem");
}
print("method end");
}
Run Code Online (Sandbox Code Playgroud)
这种行为很奇怪,因为我得到的唯一打印是"开始" - 我希望得到"问题"和"方法结束"打印.如果doSomething本身处理异常 - 那么将打印"end".但除了"开始",我没有得到任何印刷品
现在我知道doSomething方法存在一些问题,好像我不是通过执行程序服务运行它,我得到"Method Not Found"异常.
我认为它可能以某种方式连接到我使用的Executor服务 - Executors.newFixedThreadPool,但我无法解释它
谢谢你的建议!
NoSuchMethodError
不是源于Exception
:
java.lang.Object
java.lang.Throwable
java.lang.Error
java.lang.LinkageError
java.lang.IncompatibleClassChangeError
java.lang.NoSuchMethodError
Run Code Online (Sandbox Code Playgroud)
所以不会被发布的catch
条款抓住.更改以捕获Throwable
或添加单独的catch
子句Error
并以不同的方式处理(尝试从a恢复Exception
但是报告Error
并且不尝试恢复,例如).
归档时间: |
|
查看次数: |
1929 次 |
最近记录: |