如何处理Callable <void> </void>中的异常

时间:2014-07-31 08:58:27

标签: java java.util.concurrent

当我使用Void作为返回类型时,我想知道如何处理来自Callable的异常。

这样的事情:

ExecutorService executor = Executors.newSingleThreadExecutor();
executor.submit(new Callable<Void>() {

        @Override
        public Void call() throws Exception {
            call a third party code where an exception is thrown...
            return null;
        }

});

由于我不需要来自此callable的任何结果,因此我不会调用从调用executor.submit()返回的Future上的get()。因此吞下了例外。

处理此类异常的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

call()方法中的try / catch怎么样? - 我想这取决于发生异常时你想做什么。

public Void call() throws Exception {
    try {
        ThirdParty.doSomething();
    } catch(SomeTypeException e) {
        SomeErrorHandler.handleThisError(e); // E.g. report it to the user
    }
    return null;
}