为什么这里不需要return语句?

时间:2016-04-17 13:24:48

标签: java try-catch

如果我有方法:

public static boolean getA() throws Exception{
    try{
        throw new Exception();
    }finally 
    {

    }
}

不需要退货声明。此外,如果我们尝试在结尾添加一个return语句,它会产生“ unreachable statement ”错误。

为什么会这样?是否确定程序不会出现在块中,并且会抛出异常?

此外,如果我们添加一个catch块而不是finally块,那么它需要在那里存在return语句。

3 个答案:

答案 0 :(得分:2)

因为您已指定了throw语句,并且方法定义中没有其他内容。这就是为什么。我想就是这么简单。

返回语句将无法访问,因为它将抛出异常而不考虑所有内容。

catch将需要return语句,因为您正在显式处理异常,因为它希望您按照在方法定义中声明的那样返回。

我希望你知道,你可以保持捕获和最后阻止。因为它们有不同的用途。

Java Exceptions

答案 1 :(得分:0)

是的,确定程序会抛出异常,这是你在try块中所做的第一行。

即使它不是你的try块中的第一个语句,你也没有catch块,所以任何其他理论上先前抛出的异常都不会被捕获。

答案 2 :(得分:0)

可能是因为当你抛出一个exeception时,执行会停止,因此为什么最终永远不会运行。当您捕获异常时,将继续执行,您将不得不返回。