我有一个缓存实现,其中作为 Callable 实现(即调用方法)的一部分,我引发了一个 Checked 异常(从 Exception 子类化)。请参阅下面的代码片段。这是从缓存加载过程中抛出自定义异常的正确方法吗?我的其余代码强烈依赖于 CustomCheckedException 处理,所以我想确保下面的方法是正确的方法!doSomething 方法会引发 CustomCheckedException。
public class ABiggerClass {
...
private SomeClass getSomeData(ParamClass param) throws CustomCheckedException {
SomeClass d = null;
try {
d = someCache.get(getCacheKey(),
new CacheLoader(param));
} catch (ExecutionException e) {
e.printStackTrace();
Throwables.propagateIfInstanceOf(e.getCause(),
CustomCheckedException.class);
}
return d;
}
private class CacheLoader implements Callable<SomeClass> {
private ParamClass param;
@Override
public SomeClass call() throws Exception {
SomeClass result = new SomeClass();
result.doSomething(param);
return result;
}
public CacheLoader(ParamClass param) {
super();
this.param = param;
}
}
...
}