java断言assert_Java 断言 assert 详解与在IDEA的配置

首先assert是个Java关键字,表示断言。其次assert是1.4之后引入的,编译器默认不开启断言。

暂时不空谈理论用法,写一个例子:

package com.company;

public class Main

{

public static void main(String[] args)

{

System.out.println("----start---");

boolean isOpen = false;

assert isOpen=true;             //如果开启了断言,会将isOpen的值改为true

System.out.println("是否开启了断言"+isOpen);  //打印是否开启了断言

if (isOpen)

{

int value=-1;

assert 0 

}

System.out.println("----end----");

}

}

如果输出下面的信息,说明你的编译器没有开启断言:

----start---

是否开启了断言false

----end----

Process finished with exit code 0

如果没有开启断言的话,给编译器加上-ea参数:

51baed7ede4c34ccd9e529211db76d13.png

然后编译运行,输出结果:

----start---

是否开启了断言true

Exception in thread "main" java.lang.AssertionError: value=-1

at com.company.Main.main(Main.java:15)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:606)

at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)

Process finished with exit code 1

可见assert为假的时候会中断程序的执行,并且输出了详细的错误信息,比try catch更简洁,发布程序的时候只需要去掉-ea就行,在调试程序的时候非常有用。

这篇博文总结得很好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值