我有以下代码:
public Trail getNewestTrail() {
return trails.stream().max(Comparator.comparing(Trail::getTimestamp)).orElseThrow(NoSuchElementException::new);
}
在没有将getNewestTrail声明为引发异常的情况下,我看不到任何错误-为什么?
答案 0 :(得分:8)
NoSuchElementException
从java.lang.RuntimeException
扩展到uncheched exception:
Java编程语言不需要捕获或捕获方法 指定未经检查的异常(RuntimeException,Error及其 子类)
您只需要在方法签名中指定检查的异常。
答案 1 :(得分:1)
NoSuchElementException
是RuntimeException
,不需要在编译时进行处理。
只需检查一下,将NoSuchElementException
替换为Exception
,它将开始给您带来编译失败。