Java异常与断言全解析
1. 异常概述
在编程世界里,程序可能因各种原因而失败。以下是一些常见导致程序失败的情况:
- 程序尝试读取不存在的文件。
- 程序尝试访问数据库,但数据库的网络连接不可用。
- 编码错误,在JDBC代码中编写了无效的SQL语句。
- 编码错误,使用 DateTimeFormatter
时使用了错误的格式说明符。
可以看到,有些是编码错误,有些则是无法控制的外部因素。程序虽无法阻止网络连接中断,但可以对这些情况进行处理。
2. 异常术语
异常是Java表达“我放弃了,我不知道现在该怎么办,你来处理”的方式。编写方法时,既可以处理异常,也可以将其抛给调用代码处理。
“快乐路径”指的是程序没有任何问题时的执行路径。但如果代码存在问题,可能就没有“快乐路径”。例如,代码中存在总是抛出 NullPointerException
的bug,此时就只有异常路径,而没有正常执行完成的“快乐路径”。
3. 异常分类
异常主要分为以下几类:
| 类型 | 识别方法 | 程序是否建议捕获 | 程序是否必须捕获或声明 |
| ---- | ---- | ---- | ---- |
| 运行时异常 | RuntimeException
或其子类 | 是 | 否 |
| 检查异常 | Exception
或其子类,但不是 RuntimeException
或其子类 |