[英]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.