211. Java 异常 - Java 异常机制总结

211. Java 异常 - Java 异常机制总结

211. Java 异常 - Java 异常机制总结

在 Java 中,异常(Exception)是用于处理程序运行时可能出现错误的一种机制。它不仅提供了清晰的错误处理流程,还提高了代码的可维护性和可读性。

🎯 如何抛出异常(Throwing Exceptions)

如果程序中出现了错误,我们可以使用 throw 语句主动抛出异常。

throw new IllegalArgumentException("参数不合法");

throw 后面是一个异常对象,它必须是 Throwable 类的子类。

常用的异常类包括:

IllegalArgumentException

IOException

NullPointerException(通常由 JVM 自动抛出)

🔸 示例:方法中抛出异常

public void setAge(int age) throws IllegalArgumentException {

if (age < 0) {

throw new IllegalArgumentException("年龄不能为负数");

}

this.age = age;

}

如果方法中可能抛出检查型异常(Checked Exception),必须使用 throws 声明:

public void readFile(String path) throws IOException {

// 可能会抛出 IOException

}

✅ 如何捕获异常(Catching Exceptions)

Java 提供了 try-catch-finally 结构来捕获和处理异常。

🔹 基本结构:

try {

// 可能抛出异常的代码

} catch (ExceptionType1 e1) {

// 处理异常1

} catch (ExceptionType2 e2) {

// 处理异常2

} finally {

// 无论是否发生异常,这里的代码一定会执行

}

🔸 示例:文件读取异常处理

try {

FileReader reader = new FileReader("data.txt");

// 读取文件

} catch (FileNotFoundException e) {

System.out.println("文件未找到: " + e.getMessage());

} finally {

System.out.println("无论如何我都会执行");

}

🔍 关键点解释

关键语法作用说明try尝试执行可能抛出异常的代码包围可能出错的代码块catch处理指定类型的异常可以有多个 catch 块,按从小到大顺序匹配finally总会执行的代码块常用于关闭资源、释放内存等清理操作throws方法声明抛出异常必须声明检查型异常(如 IOException)throw主动抛出异常跟随一个 Throwable 实例

🔄 异常链(Exception Chaining)

Java 支持异常链,即一个异常可以包含另一个异常作为其“原因”。

🔸 示例:包装异常信息

try {

connectToDatabase();

} catch (SQLException e) {

throw new RuntimeException("数据库连接失败", e);

}

通过异常链,我们可以保留最初的错误信息,便于排查问题。

✅ 重点强调

try-with-resources 示例(现代 Java 中的推荐做法):

try (BufferedReader reader = new BufferedReader(new FileReader("data.txt"))) {

String line = reader.readLine();

} catch (IOException e) {

e.printStackTrace();

}

🧠 小结回顾

异常对象携带错误信息,通过 throw 抛出。

使用 try-catch-finally 来安全处理错误。

异常可沿方法链向上传播,直到被处理。

使用异常链可以追踪错误的根源。

finally 是清理资源的最佳位置。

相关文章

忠爱无言
microsoft365破解版

忠爱无言

🕒 07-02 👁️ 848
联赛:大洋洲 - 世界杯预选赛,大洋世预
日博best365下拉飞机XLCOKK

联赛:大洋洲 - 世界杯预选赛,大洋世预

🕒 09-06 👁️ 6048
权志龙的回归:从舞台巨星到平凡日常的温暖蜕变
日博best365下拉飞机XLCOKK

权志龙的回归:从舞台巨星到平凡日常的温暖蜕变

🕒 08-30 👁️ 7096
Cowon和Cheoeumcheoreom的鼻修复怎么样?
microsoft365破解版

Cowon和Cheoeumcheoreom的鼻修复怎么样?

🕒 06-20 👁️ 1292
剑网三奶妈哪个好?全面解析热门奶妈角色,助力玩家轻松升级
国产路虎车型推荐
365b体育最新下载地址

国产路虎车型推荐

🕒 11-29 👁️ 5409
仙氣「遲到妹」Ella開學「遲到遲」淡定爆紅
365b体育最新下载地址

仙氣「遲到妹」Ella開學「遲到遲」淡定爆紅

🕒 11-09 👁️ 1625
2025年宽带固定IP套餐价格及办理费用一览
365b体育最新下载地址

2025年宽带固定IP套餐价格及办理费用一览

🕒 09-16 👁️ 7920
北银消费金融-易开花
microsoft365破解版

北银消费金融-易开花

🕒 09-19 👁️ 5140