第7章 异常、断言和日志
Java
中有 3 种处理系统错误的机制:
- 抛出一个异常。
- 使用断言。
- 日志。
抛出异常¶
声明检查型异常¶
派生于 Error
类或 RuntimeException
类的所有异常称为非检查型异常,所有其他的异常称为 检查型异常。
下面 4 种情况会抛出异常:
- 调用了一个抛出检查型异常的方法,例如,
FileInputStream
构造器。 - 检测到一个错误,并且利用
throw
语句抛出一个检查型异常。 -
程序错误,例如,
a[-1]=0
会抛出一个非检查型异常ArrayIndexOutOfBoundsException
-
Java
虚拟机或运行时库出现内部错误。
一个方法必须声明所有可能抛出的检查型异常(也就是前两种情况),因为如果处理器没有捕获这个异常,当前执行的线程就会终止。如果在方法中没有声明所有可能发生的检查型异常,编译器就会发出一个错误消息。
使用断言¶
什么时候使用断言:
- 断言检查只是在开发和测试阶段打开。
- 断言失败时,程序的行为是难以预料的。
通常使用的断言完成 参数检查 和 提供假设文档
最后更新:
2023-12-12
创建日期: 2023-12-05
创建日期: 2023-12-05