处理来自Java ExecutorService任务的异常

处理来自Java ExecutorService任务的异常,第1张

处理来自Java ExecutorService任务的异常

提交Runnable时,它将被包装在Future中。

你的afterExecute应该是这样的:

public final class ExtendedExecutor extends ThreadPoolExecutor {    // ...    protected void afterExecute(Runnable r, Throwable t) {        super.afterExecute(r, t);        if (t == null && r instanceof Future<?>) { try {     Future<?> future = (Future<?>) r;     if (future.isDone()) {         future.get();     } } catch (CancellationException ce) {     t = ce; } catch (ExecutionException ee) {     t = ee.getCause(); } catch (InterruptedException ie) {     Thread.currentThread().interrupt(); }        }        if (t != null) { System.out.println(t);        }    }}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5146045.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存