Java 中 throw 和 throws 的区别是什么?(附示例代码)
在 Java 中,throw 和 throws 是两个不同的关键字,用于处理异常。它们的作用和用法有所不同。
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 异常。