Java Basic—方法中的返回类型和返回语句有点混乱

Java Basic—方法中的返回类型和返回语句有点混乱,java,return,Java,Return,我的理解是,在Java中,如果一个方法声明一个返回类型,如果我们不在该方法中放入一个返回语句,编译就会失败。但是下面的代码编译成功 public int test() throws Exception{ throw new Exception("exception"); } 现在我有点困惑。我认为我的理解是错误的。有人能澄清一下吗? 谢谢。Java方法必须返回或抛出异常。如果所有可能的代码路径都不会导致返回或异常,编译器将拒绝编译。此方法中的唯一代码路径引发异常,因此

我的理解是,在Java中,如果一个方法声明一个返回类型,如果我们不在该方法中放入一个返回语句,编译就会失败。但是下面的代码编译成功

 public int test() throws Exception{
        throw new Exception("exception");
    }
现在我有点困惑。我认为我的理解是错误的。有人能澄清一下吗?
谢谢。

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


这是无效的,因为如果
i,我会补充说这是返回值的正常方式。Exception是一种处理可能发生的错误的不同机制。两者不相等,不应使用异常机制代替返回来提供向调用方传递值的附加方式。
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;
    }
}