7.4.1 断言的概念

断言机制允许在测试期间向代码中插入一些检查, 而在生产代码中会自动删除这些检查.

  1. assert condition;
  2. assert condition : expression;

断言 condition 为 false 时会抛出 AssertionError 异常.

7.4.2 启用和禁用断言

默认禁用, 启用参数:

  • 不必重新编译
  1. java -enableassertions MyApp
  • 启用某个类或包的断言
    • -disableassertions-da是禁用
  1. java -ea:MyClass -ea:com.mycompany.mylib MyApp
  • 对于系统类使用 -enablesystemassertions/-esa

7.4.3 使用断言完成参数检查

3种处理系统错误的机制:

  • 异常
  • 日志
  • 断言

什么时候使用断言:

  • 断言失败是致命的, 不可恢复的错误
  • 断言检查只是在开发和测试阶段打开

7.4.4 使用断言提供假设文档

理解就是, 某个表达式应该是 e, 为了确保确实只有 e, 所以使用断言.