Java - 基础知识 - assert 断言
assert 在很多编程语言中的用途都是断言,它是 jdk1.4 之后新加的关键字。
assert 的使用包含两部分内容:
- assert BooleanCondition:assert 后边跟一个布尔表达式,如果表达式的值为 true,那么就认为当前条件复合要求,继续执行业务代码;如果表达式的值为 false,那么就认为当前条件不符合要求,立即抛出 AssertionError 的错误。AssertionError 继承自 Error,Error 继承自 Throwable。Throwable 这个类,平常使用的相对较少,它还有一个子类叫 Exception,Error 和 Exception 一样都属于系统不应该出现的严重问题。
- assert BooleanCondition:Exception:assert 后边跟一个布尔表达式,同时再跟一个返回值为基本类型的表达式,当布尔表达式的值为 true 时,则继续运行剩余的业务代码,不会执行 “:” 后面的表达式;否则执行 “:” 后面的表达式,并将结果放在 AssertionError 异常中,一并抛出。
写个简单的 demo,玩一玩 assert:
1 package com.taiyo.util; 2 3 public class AssertTest { 4 5 public static void main(String[] args) { 6 7 assert 1 == 1; 8 System.out.println("Assert test true..."); 9 assert 1 != 1 : "This is what I wanna insert into the exception......"; 10 System.out.println("Assert test false..."); 11 12 } 13 14 }
在 IDEA 上运行上面的程序得到如下的结果:
说好的断言为假会抛出异常的呢?
原来,assert 关键字是受 Java 启动项配置的,在启动时,需要通过 -ea 将 assert 开启:java -ea AssertTest
这样我们就会看到 assert 关键字的功能生效了。
通过 -da 将 assert 关闭 :java -da AssertTest(默认是关闭的)
在 IDEA 中可以按如下步骤开启 assert 关键字的功能:
- Run 下找到 Edit Configurations 并点击。
- 在打开的面板中找到 VM options 并输入 -ea,然后点击 OK 确认修改。
再次运行程序,得到如下结果:
如有疑问或者错误,都欢迎在评论区告知我 :)
参考文档: