java ScheduledExecutorService可运行异常处理
我意识到,如果在runnable的run方法内部(或者没有,但是应该与之相关)引发异常,那么我未来的所有任务都不会运行 所以我的问题是:我如何从这样的异常中恢复(在哪里捕捉它) 我试过这个: 如果我执行while循环来捕获异常,那么未来的任务仍然不会执行。我也试着安排捕获时间,也没有任何帮助java ScheduledExecutorService可运行异常处理,java,multithreading,Java,Multithreading,我意识到,如果在runnable的run方法内部(或者没有,但是应该与之相关)引发异常,那么我未来的所有任务都不会运行 所以我的问题是:我如何从这样的异常中恢复(在哪里捕捉它) 我试过这个: 如果我执行while循环来捕获异常,那么未来的任务仍然不会执行。我也试着安排捕获时间,也没有任何帮助 我试图用一个巨大的try/catch来包装run方法中的所有代码,但它似乎没有捕获任何东西,一些异常仍然没有捕获,并导致我未来的所有任务都无法运行。在executor框架中,您将控制作业从一个主应用程序线程
我试图用一个巨大的try/catch来包装run方法中的所有代码,但它似乎没有捕获任何东西,一些异常仍然没有捕获,并导致我未来的所有任务都无法运行。在executor框架中,您将控制作业从一个主应用程序线程运行到一个线程池线程。线程通过计划提交工作,或者submit方法返回一个Future对象,该对象允许线程通过get方法获取信息。get方法将抛出一个executor异常,其原因可能是runnable中的代码抛出的异常。如果主线程不这样做,它将永远不会看到该异常,因此它实际上取决于您的应用程序逻辑流 还有一件事要提的是,如果你想一网打尽,如果你在做类似的事情,你的意思是什么
try {
....
}
catch(Exception e) {
.... }
你真的没有在你的应用程序中捕捉到错误(throwable是异常和错误之父),所以你可能有一些静态初始化错误(在静态块中捕捉到异常)
同样,这取决于您希望异常处理的方式—您拥有全部权限
谢谢你也许会帮助你发布你的实际代码,或者更好地发布一个有同样问题的简化版本。