7.4.1 断言的概念
断言机制允许在测试期间向代码中插入一些检查, 而在生产代码中会自动删除这些检查.
assert condition;
assert condition : expression;
断言 condition 为 false 时会抛出 AssertionError 异常.
7.4.2 启用和禁用断言
默认禁用, 启用参数:
- 不必重新编译
java -enableassertions MyApp
- 启用某个类或包的断言
-disableassertions
或-da
是禁用
java -ea:MyClass -ea:com.mycompany.mylib MyApp
- 对于系统类使用
-enablesystemassertions/-esa
7.4.3 使用断言完成参数检查
3种处理系统错误的机制:
- 异常
- 日志
- 断言
什么时候使用断言:
- 断言失败是致命的, 不可恢复的错误
- 断言检查只是在开发和测试阶段打开
7.4.4 使用断言提供假设文档
理解就是, 某个表达式应该是 e, 为了确保确实只有 e, 所以使用断言.