在 Java 中,assert 是关键字,用于断言(Assertion),语法非常简单。
assert 布尔表达式;
如果表达式为 false,抛出 AssertionError。
示例:
int age = -1;
assert age >= 0;
当 age < 0 时,程序会抛出:
Exception in thread "main" java.lang.AssertionError
assert 布尔表达式 : 错误信息;
示例:
int age = -1;
assert age >= 0 : "年龄不能为负数";
抛出:
java.lang.AssertionError: 年龄不能为负数
⚠️ Java 默认不启用断言
javac Test.java
java -ea Test
# 或
java -enableassertions Test
java -da Test
✅ 参数校验(开发阶段)
public void setScore(int score) {
assert score >= 0 && score <= 100 : "分数非法";
this.score = score;
}
✅ 不可能走到的情况
default:
assert false : "不可能到达的分支";
❌ 不要用 assert 做业务校验(生产环境可能关闭)
❌ 不要用 assert 代替异常(IllegalArgumentException 等)
✅ assert 仅用于开发调试阶段的逻辑自检
| 对比项 | assert | 异常 |
|---|---|---|
| 是否默认开启 | 否 | 是 |
| 用于生产 | 不推荐 | 推荐 |
| 类型 | 断言失败 | 程序错误/业务错误 |
如果你是想问 JUnit 的 Assert(如 Assert.assertEquals)或者 Spring Assert,也可以告诉我,我可以分别讲。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。