我的理解是,在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;
}
}
标签:java,return
来源: https://codeday.me/bug/20190721/1494750.html