程序总会出错:用户传来一个非法参数,文件被删除了,网络突然断开,数据库连不上。Java 把"出错"这件事变成了一种可以被语言原生表达的东西——**异常(Exception)**。这一讲我们把异常处理这套机制从头到尾讲透:异常体系是什么样的、try-catch-finally 到底怎么执行、什么时候该自己写一个异常类、以及"异常链"这种容易被忽视但非常重要的调试利器。 ## 异常体系总览 在 Java 里,所有"不正常"的情况都会被包装成一个对象,这个对象���类必须继承自 `Throwable`。整个体系可以画成一棵树: ```text Throwable ├── Error …