如果我有方法:
public static boolean getA() throws Exception{
try{
throw new Exception();
}finally
{
}
}
不需要退货声明。此外,如果我们尝试在结尾添加一个return语句,它会产生“ unreachable statement ”错误。
为什么会这样?是否确定程序不会出现在块中,并且会抛出异常?
此外,如果我们添加一个catch块而不是finally块,那么它需要在那里存在return语句。
答案 0 :(得分:2)
因为您已指定了throw语句,并且方法定义中没有其他内容。这就是为什么。我想就是这么简单。
返回语句将无法访问,因为它将抛出异常而不考虑所有内容。
catch将需要return语句,因为您正在显式处理异常,因为它希望您按照在方法定义中声明的那样返回。
我希望你知道,你可以保持捕获和最后阻止。因为它们有不同的用途。
答案 1 :(得分:0)
是的,确定程序会抛出异常,这是你在try块中所做的第一行。
即使它不是你的try块中的第一个语句,你也没有catch块,所以任何其他理论上先前抛出的异常都不会被捕获。
答案 2 :(得分:0)
可能是因为当你抛出一个exeception时,执行会停止,因此为什么最终永远不会运行。当您捕获异常时,将继续执行,您将不得不返回。