、ラムダブロック内の例外を外側のブロックから再スローする方法はありますか?次のコードで
void key(Key) throws SomeCheckedException {
}
void supplier(Supplier<Key> s) throws SomeCheckedException {
ofNullable(s).ifPresent(s -> { // |
try { // |
key(s.get()); // |
} catch (final SomeCheckedException sce) { // |
// sce is coming from key() method // |
// How can I throw sce for outer method? // --/
}
});
}
方法(supplier
)メソッドがそれを投げているsce
かのようにどのようにして投げることができますか?
上記のコードは単なる例であることに注意してください。ラムダ式の中に入れるにはkey(s.get())
が必要です。
void supplier(Supplier<Key> s) throws SomeCheckException {
key(s.get());
}
のようなヘルパーメソッドの型呼び出しを使用することができます。私はそのキー(...)がチェック例外をスローするとは思わなかった。しかし、[私の答え](http://stackoverflow.com/a/27900544/2711488)もそのケースを処理します。 – Holger