有了下面的代碼,如何從外部塊重新拋出lambda塊中的異常?
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? // --/
}
});
}
我怎麼能扔sce
彷彿方法(supplier
)方法把它扔?
請注意,上面的代碼只是一個例子。我需要key(s.get())
在一個lambda表達式中。
void supplier(Supplier<Key> s) throws SomeCheckException {
key(s.get());
}
啊,我沒有想到'鍵(...)'可能會拋出檢查異常。但[我的答案](http://stackoverflow.com/a/27900544/2711488)也處理這種情況。 – Holger