java-石英计划的作业无法触发-可能未处理的异常?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-石英计划的作业无法触发-可能未处理的异常?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1228字,纯文字阅读大概需要2分钟。
内容图文
![java-石英计划的作业无法触发-可能未处理的异常?](/upload/InfoBanner/zyjiaocheng/674/83ea8c7c5b274f718caa48cb3c8a57c1.jpg)
我有一个使用Quartz库的具有预定作业的Web应用程序.最近,我遇到了一些工作似乎没有被解雇的情况.我做了一些阅读,显然如果作业抛出异常,Quartz调度程序将尝试再次执行作业.这是真的?
无论如何,我都基于上述陈述是正确的假设进行了一些故障排除.因此,假设我有以下代码段:
try {
method.invoke(object, params);
}
catch (ExceptionA ea) {
ea.printStackTrace();
}
catch (ExceptionB eb) {
eb.printStackTrace();
}
// and so on so forth, catching a bunch of specific Exceptions
这里要注意的重要一点是,Exception本身并未被捕获.
因此,假设正在调用的方法将引发未处理的异常.
public void methodBeingInvoked() throws UnhandledException {
这里会发生什么?
解决方法:
从Job抛出的任何Throwable将被Quartz捕获并包装在JobExecutionException中,并且不会被重新触发.
查看JobRunShell#run的源代码
有一些documentation on the Quartz website与此矛盾,但是在查看Quartz 1.8.x / 2.0.x / 2.1.x源代码之后,该文档对于所有版本都是错误的.
A Job’s execute method should contain a try-catch block that handles
all possible exceptions.If a job throws an exception, Quartz will typically immediately
re-execute it (and it will likely throw the same exception again).
It’s better if the job catches all exception it may encounter, handle
them, and reschedule itself, or other jobs. to work around the issue.
内容总结
以上是互联网集市为您收集整理的java-石英计划的作业无法触发-可能未处理的异常?全部内容,希望文章能够帮你解决java-石英计划的作业无法触发-可能未处理的异常?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。