断言默认关闭,需用-ea启用,语法为assert布尔表达式或assert布尔表达式:错误信息,用于调试时验证条件。

Java中的assert断言是一种调试工具,用于验证程序中的假设条件是否成立。它可以在开发和测试阶段帮助开发者快速发现逻辑错误。但需要注意的是,assert默认是关闭的,必须显式启用才能生效。
启用assert断言
Java中assert默认不启用,运行程序时需要添加参数来开启:
-ea 或 -enableassertions例如:
java -ea MyClass
这样运行时,所有assert语句才会被检查。如果不加-ea,assert语句将被忽略。
立即学习“Java免费学习笔记(深入)”;
基本语法
assert有两种使用方式:
免费 盛世企业网站管理系统(SnSee)系统完全免费使用,无任何功能模块使用限制,在使用过程中如遇到相关问题可以去官方论坛参与讨论。开源 系统Web代码完全开源,在您使用过程中可以根据自已实际情况加以调整或修改,完全可以满足您的需求。强大且灵活 独创的多语言功能,可以直接在后台自由设定语言版本,其语言版本不限数量,可根据自已需要进行任意设置;系统各模块可在后台自由设置及开启;强大且适用的后台管理支
- assert 布尔表达式;:如果表达式为false,抛出AssertionError。
- assert 布尔表达式 : 错误信息;:如果为false,抛出AssertionError,并显示指定的错误信息。
示例:
int x = 5; assert x > 0; // 条件成立,无异常 assert x < 0 : "x 不应该小于0"; // 条件不成立,抛出 AssertionError,消息为 "x 不应该小于0"
使用场景与建议
assert适合用于内部状态的检查,比如私有方法的参数校验、算法中间结果验证等。
- 不要用assert替代输入参数的合法性检查(应使用if + IllegalArgumentException)。
- 不要在assert中放置有副作用的代码,如
assert list.remove(obj);,因为发布时可能被关闭。 - 适用于开发和测试环境,生产环境通常关闭以提升性能。
注意事项
assert不是异常处理机制,AssertionError是Error的子类,不应被catch。它的作用是让程序在发现问题时立即停止,便于定位错误。
另外,IDE中也可以设置运行时自动启用assert,比如在IntelliJ或Eclipse中配置VM选项加入-ea。
基本上就这些。合理使用assert能让代码更健壮,但记得上线前确认是否需要关闭。不复杂但容易忽略。









