Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java线程悄无声息地崩溃-我可以';我看不出有什么例外_Java_Multithreading_Exception_Executorservice_Executors - Fatal编程技术网

Java线程悄无声息地崩溃-我可以';我看不出有什么例外

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"); } 这种行为很奇怪,因为我得到的打印是“开始”-我希望得到“问题”和“方法结束”打印。如

我看到一种我无法解释的行为

我有一个Runnable,它的代码是:

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
因此不会被posted
catch
子句捕获。更改为catch
Throwable
或为
Error
添加单独的
catch
子句,并进行不同的处理(例如,尝试从
异常中恢复,但报告
错误
,不尝试恢复)