我在Java文档中看到了这一点:ScheduledAtFixedRate,它说
如果该任务的任何执行遇到异常,将禁止后续执行
我不希望在我的应用程序中发生这种情况。即使看到异常,我也总是希望后续执行继续进行。我怎样才能从ScheduledExecutorService
。
用try / catch包围Callable.call方法或Runnable.run方法...
例如:
public void run()
{
try
{
// ... code
}
catch(final IOException ex)
{
// handle it
}
catch(final RuntimeException ex)
{
// handle it
}
catch(final Exception ex)
{
// handle it
}
catch(final Error ex)
{
// handle it
}
catch(final Throwable ex)
{
// handle it
}
}
请注意,捕获除编译器也告诉您的内容之外的其他内容(在我的示例中为IOException)不是一个好主意,但是有时候,这听起来像其中之一,只要您正确处理,它就可以解决。
请记住,诸如Error之类的事情非常糟糕-VM内存不足等...因此请小心处理它们(这就是为什么我将它们分离到自己的处理程序中,而不是仅仅执行catch(最终Throwable ex)之类的原因其他)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句