【发布时间】:2017-08-24 14:42:50
【问题描述】:
我在 Kotlin 中定义了一个函数:
fun convertExceptionToEmpty(requestFunc: () -> List<Widget>): Stream<Widget> {
try {
return requestFunc().stream()
} catch (th: Throwable) {
// Log the exception...
return Stream.empty()
}
}
我已经用这个签名定义了一个 Java 方法:
List<Widget> getStaticWidgets() throws IOException;
我尝试这样组合它们:
Stream<Widget> widgets = convertExceptionToEmpty(() -> getStaticWidgets())
编译时出现此错误:
错误:(ln, col) java: 未报告的异常 java.io.IOException;必须被抓住或宣布被扔掉
如何定义我的函数参数以接受抛出的函数?
【问题讨论】:
-
您可以尝试注释您的 convertExceptionToEmpty 函数以抛出 IOException,这可能会绕过此错误。
-
@piwo,我认为这不会有帮助,异常来自
getStaticWidgets()方法
标签: java lambda java-8 kotlin throws