我在java docs中看到了这个: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
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,除了编译器告诉你的内容之外还有其他任何东西(我的示例中的IOException)并不是一个好主意,但有时候,这听起来像其中之一,如果你正确处理它可以解决它.
请记住,像Error这样的东西非常糟糕 - 虚拟机内存不足等等......所以要小心你如何处理它们(这就是为什么我将它们分成自己的处理程序而不仅仅是捕获(最终的Throwable ex)而没有什么其他).
| 归档时间: |
|
| 查看次数: |
6796 次 |
| 最近记录: |