# Java中的断言assert

从Java1.4起便支持assert语法进行断言,但是很多人在代码中看到此类代码却完全不知道是什么意思,为什么要这样做。 下面我来简介下assert语法,并分享为什么要用它,什么时候该用它。

# assert用法

assert是针对一个boolean类型做出断言,如果boolean值为true则继续执行,如果为false,则抛出异常(java.lang.AssertError)。

有两种用法,如下:

  1. assert Object!=null;
  2. assert Object!=null : "Object is null";

第一种用法不必详说,直接尝试一下便知,第二种用法便是如果为false,抛出异常的同时加上自定义的字符串。

# 启用断言

java应用默认不启用assert语法,因此在不启用的状态下,所有assert都不生效,jvm会忽略。要让其生效需要在启动java应用时使用对应vm参数,如下:

# -ea代表-enableassertions
java -ea Main.java

还可以指定对应类开启断言,但由于不常用,所有具体使用方法请自行查阅。

# 为什么要使用它&什么时候该用它

java加入断言是为了更好的开发和测试,并不建议在生产中使用,因为AssertError是一种Error类型,不属于Exception,因此会直接阻断程序的运行。

在开发和测试过程中,对其加以利用可以方便验证结果,提高效率,但现在普遍都使用junit了(确实更好用)。

所以在这里,我并不推荐大家使用它,但阅读过本文之后,大家需要在遇见它的时候,能做到心中有数。

修改于: 8/11/2022, 3:17:56 PM