断言是 Java 1.4 引入的一个关键字,它可以根据一个 boolean 类型表达式的结果判断是否继续执行,true 则继续,false 则抛出一个 java.lang.AssertionError 异常中断当前方法并执行冒号后的表达式,如 assert false : Sysout.out.println("断言"); 将直接在控制台抛出异常并打印"断言"两个字。在 javaWeb 中断言失败将中断当前 Action 。
个人理解断言一般在开发单元测试阶段或在封装工具类内部使用,在成熟上线项目中应注释或删除断言代码。
断言在 Java 体系内是默认关闭的,也就是 java xx.class 命令将无视 .class 文件内的断言代码,相当于执行了 java -da xx.class 关闭断言,需要 java -ea xx.class 才可以执行文件内的断言代码。
1. 使用 Eclipse 等 IDE 工具开启断言的方式:
Window > Preferences > Java > Installed JREs 在右边选中自己在用的 jre 环境,点击Edit,在 Default VM arguments 中输入 -ea 即可
2. Eclipse 为 Tomcat 打开断言的方式:
Run > Run Configurations > 左侧 Apache tomcat 选中在用的 Tomcat 服务器 > 右侧 Arguments > VM arguments 添加 -ea 需要加个空格与其他项分隔
方式 1 是在本地 jre 运行环境中开启断言,等于把原来的 java xx.class 运行命令改为 java -ea xx.class 命令,针对所有 Java 文件,而方式 2 仅为 Tomcat 内部署的 Web 项目文件开启断言。
End .