throw关键字

  • 用途:在代码块内部显式地抛出一个异常对象。

  • 语法:throw new ExceptionName(message);

throws关键字
  • 用途:在方法签名上声明可能会抛出的异常类型。

  • 语法: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块中处理该异常,也可以不处理。

本篇文章来源于微信公众号: 互联网面试小帮手



微信扫描下方的二维码阅读本文

此作者没有提供个人介绍
最后更新于 2024-04-19