assert 是什么,什么时候使用?
先说出你的答案
定义边界、关键机制、一个反例;P8题再补容量、失败与验证。
查看完整题解
参考回答
直接回答
assert 是 Java 的断言语句,用来检查程序员认为在该位置应当成立的内部条件。断言启用时,条件为 false 会抛 AssertionError;通常默认未启用,需要通过 -ea 等启动选项打开。它不适合替代业务校验或公共接口参数检查。
讲清原理
断言更像开发阶段的“内部假设检查”。例如算法执行到某一步时,下标必须处于已知范围。如果用户输入是否合法、权限是否足够会影响业务正确性,就必须使用始终执行的显式判断,不能依赖可关闭的断言。
断言表达式也不应承担必须发生的副作用。否则关闭断言后,计算、赋值或计数动作可能根本不发生,程序行为就改变了。测试框架中的断言方法与语言关键字 assert 也不是同一套启用机制。
例子与易错点
int size = -1;
assert size >= 0 : "内部长度不应为负";
System.out.println("继续执行");
普通启动可能打印“继续执行”;使用 java -ea ... 则抛 AssertionError。验证用户输入时,应改为明确抛 IllegalArgumentException 或返回可理解的错误信息。
和评分标准对照,你能独立回答到哪一步?
自评会安排下一次复习,不保存你的口述内容。
这道题,你掌握得怎么样?
掌握程度由你主动标记,阅读和收藏不会自动改变状态。