相关疑难解决方法(0)

为什么必须用lambda体中的完整代码块来包含throw语句?

如果lambda函数中有一个语句,我们可以省略为它定义完整的代码块:

new Thread(() -> System.out.println());
Run Code Online (Sandbox Code Playgroud)

为什么抛出异常的语句不是这种情况?这会产生一个编译错误,说明'{' expected:

new Thread(() -> throw new RuntimeException());
Run Code Online (Sandbox Code Playgroud)

当然,将lambda主体封装在代码块中可以:

new Thread(() -> {
    throw new RuntimeException();
});
Run Code Online (Sandbox Code Playgroud)

java lambda exception java-8

37
推荐指数
3
解决办法
793
查看次数

标签 统计

exception ×1

java ×1

java-8 ×1

lambda ×1