繁体   English   中英

Java基础-方法中的返回类型和return语句有点混乱

[英]Java fundamental - a little confusion on return type and return statement in methods

我的理解是,在Java中,如果方法声明了返回类型,则如果我们不在方法中放置return语句,则编译将失败。 但是以下代码编译成功。

 public int test() throws Exception{
        throw new Exception("exception");
    }

现在我有点困惑。 我认为我的理解是错误的。 有人可以澄清一下吗? 谢谢。

Java方法必须返回或引发异常。 如果所有可能的代码路径均未导致返回或异常,则编译器拒绝编译。 此方法中的唯一代码路径会引发异常,因此它是有效的。

这将是无效的,因为如果i <= 0 ,则不返回任何内容,并且不会引发异常:

public int test() throws Exception {
    int i = new Random().nextInt();
    if (i > 0) { 
        throw new Exception("exception");
    }
}

如果更改为有效

public int test() throws Exception {
    int i = new Random().nextInt();
    if (i > 0) { 
        throw new Exception("exception");
    }
    else {
        return 0;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM