如果函数已经保证返回或抛出,为什么我必须指定一个返回值



我不必在保证抛出异常的函数中指定返回值,因为该路径是死的:

// Works fine!
public boolean a() {
throw new RuntimeException();
}

我不明白为什么我不能在这里做同样的事情:

// Error: This method must return a result of type boolean
public boolean a() {
try {
return mayReturnOrThrow();
}
catch (Exception ex) {
new RuntimeException(ex);
}
}

我在这里错过了什么?

new RuntimeException(ex);只是做了一个异常,然后什么都不做——这是一个无用的no操作。你会想扔它:

throw new RuntimeException(ex);

最新更新