Callable 実装 (つまり call メソッド) の一部として、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;
}
}
...
}