throw关键字
-
用途:在代码块内部显式地抛出一个异常对象。
-
语法:throw new ExceptionName(message);
-
用途:在方法签名上声明可能会抛出的异常类型。
-
语法:public void methodName() throws ExceptionName1, ExceptionName2, ...
-
抛出异常 vs. 声明异常:throw用于实际抛出异常,而throws用于声明可能会抛出的异常类型。
-
作用时机:throw在代码执行期间抛出异常,而throws在编译时声明异常。
-
异常处理:throw抛出的异常必须在当前方法或上层调用栈中被catch处理,否则程序将终止。throws声明的异常可以被catch处理,也可以不处理,由调用者决定。
// 使用throw抛出异常public void checkAge(int age) {if (age < 0) {throw new IllegalArgumentException("Age cannot be negative");}}// 使用throws声明异常public void readFile() throws IOException {// 读取文件的逻辑}
try {checkAge(-1); // 抛出IllegalArgumentException} catch (IllegalArgumentException e) {// 处理异常}try {readFile(); // 可能会抛出IOException} catch (IOException e) {// 处理异常} catch (Exception e) {// 处理其他类型的异常}
在上面的示例中:
-
checkAge方法使用throw抛出IllegalArgumentException,调用者必须在try-catch块中处理该异常,否则程序将终止。
-
readFile方法使用throws声明可能会抛出IOException,调用者可以选择在try-catch块中处理该异常,也可以不处理。
本篇文章来源于微信公众号: 互联网面试小帮手
微信扫描下方的二维码阅读本文

Comments NOTHING