Java线程悄无声息地崩溃-我可以';我看不出有什么例外
我看到一种我无法解释的行为 我有一个Runnable,它的代码是:Java线程悄无声息地崩溃-我可以';我看不出有什么例外,java,multithreading,exception,executorservice,executors,Java,Multithreading,Exception,Executorservice,Executors,我看到一种我无法解释的行为 我有一个Runnable,它的代码是: run() { print("start"); try{ doSomething(); print("end"); }catch (Exception e){ print("problem"); } print("method end"); } 这种行为很奇怪,因为我得到的打印是“开始”-我希望得到“问题”和“方法结束”打印。如
run()
{
print("start");
try{
doSomething();
print("end");
}catch (Exception e){
print("problem");
}
print("method end");
}
这种行为很奇怪,因为我得到的打印是“开始”-我希望得到“问题”和“方法结束”打印。如果doSomething本身处理异常,那么将打印“end”。
但是除了“开始”我没有任何指纹
现在我知道doSomething方法存在一些问题,就好像我没有通过executor服务运行它一样,我得到了“methodnotfound”异常
我认为它可能以某种方式连接到我使用的Executor服务-Executors.newFixedThreadPool,但我无法解释它
谢谢你的建议 当然会抛出
错误。尝试捕捉可丢弃的
编辑:的确,java.lang.NoSuchMethodError
是一个错误
不是从异常中派生出来的:
java.lang.Object
java.lang.Throwable
java.lang.Error
java.lang.LinkageError
java.lang.IncompatibleClassChangeError
java.lang.NoSuchMethodError
因此不会被postedcatch
子句捕获。更改为catchThrowable
或为Error
添加单独的catch
子句,并进行不同的处理(例如,尝试从异常中恢复,但报告错误
,不尝试恢复)