【发布时间】:2019-04-06 12:37:33
【问题描述】:
我的任务是将我的 throws Exception 从 main()“移动”到 lambda 表达式。这意味着当 Lambda 中发生异常时,程序会使用 main 中的 throws。问题是我无法创建任何其他可以自动执行此操作的接口,因为我的老师说只使用 java.util.Function 中的接口,我一直在互联网上寻找,但大多数情况下都有“创建新界面”。
public static void main(String[] args) throws IOException {
Function<String, List<String>> flines = (String x) -> {
Stream<String> streamString = Files.lines(Paths.get(x)); //Should throw Exception from main if IOException
List<String> tmp = streamString.collect(Collectors.toList());
return tmp;
};
【问题讨论】:
-
不创建新接口类型的唯一方法是在 lambda 中捕获异常,然后作为未经检查的异常重新抛出(或以其他方式处理)。
标签: java function exception lambda