7.4 使用断言

7.4.1断言的概念

断言机制允许在测试期间向代码中插入一些检查语句。当代码发布时,这些插入的检测语句会被自动地移走。

assert 的两种形式:

  • assert 条件;
  • assert 条件:表达式;//表达式的目的是产生一个消息字符串。

如果结果为false,则抛出一个AssertionError异常。

7.4.2开启和禁用断言

IDEA开启断言

IDEA开启断言①

添加 -enableassertions 或 -ea 选项启用

设置VM选项

int num = 100;
assert num != 100:"鬼鬼,等于100啦";

运行结果:

Exception in thread "main" java.lang.AssertionError: 鬼鬼,等于100啦
	at com.example.demo.test.Pair.main(Pair.java:19)

禁用断言

   -disableassertions 或 -da

然而,启用和禁用所有断言的-ea和-da开关不能应用到那些没有类加载器的"系统类"。对于这些系统类来说,需要使用 -enablesystemassertions/-esa开关或启用断言。

7.4.3使用断言完成参数检查

Java语言中的3种系统错误机制:

  • 抛出一个异常
  • 日志
  • 使用断言

什么时候使用断言:

  • 断言失败时致命的、不可恢复的错误。
  • 断言只用于开发和测试阶段。

java.lang.ClassLoader

  • void setDefaultAssertionStatus(boolean b)
    对于通过类加载器加载的所有类来说,如果没有显式地说明类或包的断言状态,就启用或禁用断言。
  • void setClassAssertionStatus(String className, boolean b)
    对于给定的类和它的内部类,启用或禁用断言。
  • void setPackageAsserti onStatus(String packageName, boolean b)
    对于给定包和其子包中的所有类,启用或禁用断言.
  • void clearAssertionStatus()
    移去所有类和包的显式断言状态设置,并禁用所有通过这个类加载器加载的类的断言。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值