Java - 基础知识 - assert 断言

  assert 在很多编程语言中的用途都是断言,它是 jdk1.4 之后新加的关键字。

  assert 的使用包含两部分内容:

  1. assert BooleanCondition:assert 后边跟一个布尔表达式,如果表达式的值为 true,那么就认为当前条件复合要求,继续执行业务代码;如果表达式的值为 false,那么就认为当前条件不符合要求,立即抛出 AssertionError 的错误。AssertionError 继承自 Error,Error 继承自 Throwable。Throwable 这个类,平常使用的相对较少,它还有一个子类叫 Exception,Error 和 Exception 一样都属于系统不应该出现的严重问题。
  2. 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 关键字的功能:

  1. Run 下找到 Edit Configurations 并点击。
  2. 在打开的面板中找到 VM options 并输入 -ea,然后点击 OK 确认修改。

  

  

  再次运行程序,得到如下结果:

  

  如有疑问或者错误,都欢迎在评论区告知我 :)

  参考文档:

  https://www.cnblogs.com/jilodream/p/5940713.html

posted @ 2020-06-18 16:45  Grape_orz  阅读(328)  评论(0编辑  收藏  举报