| 作用 | 前提与不变量显式化、快速失败 |
|---|---|
| 区别 | 对内部假设用断言;对外部输入用校验与错误处理 |
| 开关 | Java 断言默认关闭、Python 可全局开启 |
示例
示例
# Java
assert discount >= 0 && discount <= 1 : "discount out of range";
# Python
assert total >= 0, "total must be non-negative"不要把断言用作生产校验:Java 断言默认关闭,失效时校验被静默跳过。
用断言显式化代码所依赖的前提:断言是团队对调用契约的记录,帮助快速定位违反点;生产环境注意断言开关(如 Java -ea)与替代方案(抛异常)。
| 作用 | 前提与不变量显式化、快速失败 |
|---|---|
| 区别 | 对内部假设用断言;对外部输入用校验与错误处理 |
| 开关 | Java 断言默认关闭、Python 可全局开启 |
# Java
assert discount >= 0 && discount <= 1 : "discount out of range";
# Python
assert total >= 0, "total must be non-negative"