如果我有方法:
public static boolean getA() throws Exception{
try{
throw new Exception();
}finally
{
}
}
不需要返回语句。此外,如果我们尝试在末尾添加 return 语句,则会产生“无法访问的语句”错误。
为什么会这样呢?是否确定程序不会跳出 block ,并且会抛出异常?
此外,如果我们添加catch block 而不是finally block ,则需要return 语句出现在那里。
最佳答案
因为你已经指定了一个 throw 语句,并且方法定义中没有其他任何内容。因此。我想事情就是这么简单。
return 语句将无法访问,因为无论发生什么,它都会抛出异常。
catch 将需要 return 语句,因为您现在正在显式处理异常,它希望您按照在方法定义中声明的方式返回。
我希望你知道,你可以同时保留 catch 和 finally block 。因为它们有各自不同的目的。
关于java - 为什么这里不需要 return 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36677122/