Java 中 throw 和 throws 的区别是什么?(附示例代码)

更新时间 2023-04-04 10:15:45

在 Java 中,throwthrows 是两个不同的关键字,用于处理异常。它们的作用和用法有所不同。

throw

throw 关键字用于在代码中抛出异常。它的使用方法如下:

throw new Exception("Something went wrong.");

这段代码会在程序执行时抛出一个 Exception 类型的异常,并传递一个错误消息作为参数。

throws

throws 关键字用于在方法声明中指定该方法可能抛出的异常。它的使用方法如下:

public void someMethod() throws Exception {// method code here}

这段代码告诉编译器 someMethod() 可能会抛出一个 Exception 异常。当调用 someMethod() 时,调用者必须捕获或抛出该异常。

区别

  • throw 用于在代码中抛出异常,而 throws 用于在方法声明中指定该方法可能抛出的异常。
  • throw 抛出的是一个异常对象,而 throws 只是声明了可能会抛出某个异常,并没有真正抛出异常。
  • throw 可以在任何地方使用,而 throws 只能在方法声明中使用。

示例代码

public class ExceptionExample {public static void main(String[] args) throws Exception {
    try {throw new Exception("Something went wrong.");
    } catch (Exception e) {System.out.println(e.getMessage());
    }
  }
}

这段代码在 main() 方法中使用了 throw 来抛出一个 Exception 异常,并在 catch 块中捕获并打印了该异常的错误消息。由于 main() 方法声明了可能会抛出 Exception 异常,所以我们在方法声明中使用了 throws 关键字来指定该异常。

另外,如果我们将 throw 语句放到 try 块外面,编译器会提示我们必须将它包裹在 try-catch 块中,因为它可能会抛出一个 Exception 异常。