[英]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.