1

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;
        }
    }

    ...
}
4

0 に答える 0