📜  Java中 throw 和 throws 的区别(1)

📅  最后修改于: 2023-12-03 15:16:19.297000             🧑  作者: Mango

Java中 throw 和 throws 的区别

在 Java 中,我们经常需要处理异常。在处理异常时,可能会用到 throwthrows 这两个关键字。虽然它们看起来很相似,但在实际应用中它们有着不同的作用。

throw

在 Java 中,当程序出现异常时,可以通过 throw 关键字抛出一个异常对象。throw 通常出现在方法体中,用于手动抛出异常,使得程序可以在遇到某些问题时自动跳转到异常处理程序。

下面的示例演示了如何使用 throw 抛出一个异常:

public void checkAge(int age) {
    if (age < 0) {
        throw new IllegalArgumentException("Age should not be negative");
    }
}

在上面的代码中,如果方法中传入的 age 参数是负数,程序会手动抛出一个 IllegalArgumentException 异常,该异常包含有关异常原因的信息。

throws

在 Java 中,当一个方法可能会抛出异常时,可以使用 throws 关键字在方法声明中列出可能的异常。在使用该方法时,调用者必须显式处理或者继续抛出这些异常。

下面的示例演示了如何在方法声明中使用 throws

public void readFile(String fileName) throws FileNotFoundException, IOException {
    BufferedReader br = new BufferedReader(new FileReader(fileName));
    // more code here...
}

在上面的代码中,方法 readFile() 可能会抛出 FileNotFoundExceptionIOException 异常。因此,在方法声明中使用 throws 关键字声明这些异常,以便调用方知道可能会发生什么异常。

区别

throwthrows 的区别在于它们的作用。throw 用于手动抛出异常对象,而 throws 用于声明一个方法可能引发哪些异常。

总的来说,throw 用于异常处理中,而 throws 用于方法签名中。只有在方法将引发异常时才使用 throw,而在方法声明中仅使用 throws 来说明可能会出现什么异常。