繁体   English   中英

java ScheduledExecutorService可运行的异常处理

[英]java ScheduledExecutorService runnable exception handling

我意识到如果在我的runnable的run方法内部引发异常(或者不是,但应该与之相关),我的所有未来任务都将不会运行。

所以我的问题是:如何从这样的异常中恢复(在哪里捕获它)?

我试过这个: ScheduledExecutorService异常处理如果我做一个while循环来捕获异常,未来的任务仍然没有执行。 我也尝试安排捕获,也没有帮助。

我试图把一个巨大的try / catch包装在run方法中的所有代码中,但它似乎没有捕获任何东西,并且一些异常仍然没有捕获并导致我未来的所有任务都无法运行。

在执行程序框架中,您可以控制将作业从一个主应用程序线程运行到线程池线程。 线程通过调度提交工作,或者向submit方法返回一个Future对象,该对象允许它通过get方法获取信息。 get方法将抛出一个执行程序异常,其原因可能是runnable中的代码抛出的异常。 如果主线程不这样做,它将永远不会看到该异常,因此它实际上取决于您的应用程序逻辑流程。

另外还要提一下,如果你尝试捕捉所有,如果你正在做类似的事情,你是什么意思

try {
....
}
catch(Exception e) {
    .... }

你真的没有在你的应用程序中捕获错误(throwable是异常和错误的父亲)所以你可能有一些静态初始化程序错误(静态块中捕获异常)

这一切都取决于您希望异常处理如何发生,你有充分的力量,

谢谢

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM