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
异常。