java中的assert

assert有什么作用:
     断言作为一种软件调试方法,提供了一种在diamante中进行正确性检查的机制。 assert的作用:      对一个boolean表达式进行检查,一个正确运行的程序保证boolean值为true,若为false,则说明程序不正确,系统需要提供警告信息并且退出程序。
assert包括两种表达式:
     assert expression1
     assert expression1:expression2

其中expression1表示一个boolean表达式,expression2表示一个基本类型或者一个对象
开启断言功能(默认断言关闭):
     java -ea TestAssert(ea:enable和assertions的缩写)
     java -enableassertions TestAssert
下面让我们来举个栗子熟悉一下assert:
assert 1+1==2;
System.out.println("assert1 ok");
assert 1+1==3:"assert faild out";
System.out.println("assert 2 ok");

对于上述代码,当程序执行javac Test.java 与java Test:

运行结果:
assert1 ok
assert2 ok
/*未开启断言时,程序无需判断1+1==2,也无需判断1+1==3是对是错,只需要按照一般流程走,
所以程序输出如上结果*/

对于上述代码,当程序执行javac Test.java 与java -ea Test  (开启):

assert1 ok
Exception in thread "main" Java.Lang.AssertionError:assert faild exit
at Test.main(Test.java5);
/*开启断言之后,程序判断boolean表达式的值是否为true,如果为true,则继续执行,
如果为false,系统需要提供警告信息并且退出程序,所以当判断1+!=3时,表达式的值为false,
程序提供异常信息并且退出,如上结果所示。*/
由此我们也可以看出来:
(1):java是在运行开启assert.(区别于C语言编译期间开启)
(2):java使用assert关键字来实现其功能。(区别于C语言的库函数)
并且,虽然assert的功能与if判断类似,但是二者存在本质性的区别:assert一般用于调试程序,如果不小心用它来控制流程的业务流程,那在调试之后去掉assert就意味着修改了程序的正常逻辑,而if随机逻辑判断,本身就是用来控制程序流程的

assert的应用范围:
(1):检查控制流
(2):检查输入参数是否有效
(3):检查函数结果是否有效
(4):检查程序不变量
在实际的开发中,assert用来保证程序的正确性,通常开发和测试使用,为了提高效率,软件发布后,assert默认关闭。
  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值