JAVA基础总结--断言

来源:互联网 发布:b超图片上的数据 编辑:程序博客网 时间:2024/05/22 11:56
java断言

实际开发中没用过出于好奇。。了解下

J2SE 1.4在语言上提供了一个新特性,就是assertion功能,从理论上来说,通过 assertion方式可以证明程序的正确性。
一般来说,assertion用于保证程序最基本、关键的正确性。assertion检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion检查通常是关闭的。


关键字assert。它包括两种表达式,分别如下:
assert  expression1;
assert  expression1:expression2;
expression1表示一个boolean表达式, expression2表示一个基本类型或者是一个对象(Object)
如果expression1 返回false 抛出java.lang.AssertionError


测试:

/** * <Description> <br> *  * @author <br> * @version 1.0<br> * @taskId <br> * @CreateDate 2017-5-27 <br> * @since <br> * @see summary.basis.assert1 <br> */public class AssertTest {    public static void main(String[] args) {        StringUtils.isNotNull(null);    }}// 字符串处理工具类class StringUtils {    public static String isNotNull(String str) {        assert str != null : "加密的字符串为null";        /* 加密处理 */        return str;    }}

理论上应该抛出异常,实际上没有任何反应

原因是一般我们使用jdk 断言默认都是不开启的

断言的开启 参考:
http://blog.csdn.net/styshoo/article/details/48209493

两种方式
1.Run -> Run Configurations->Java Application-> Arguments页签 -> VM arguments文本框中加上断言开启的标志:-enableassertions 或者-ea
2.Windows -> Preferences ->Java ->Installed JREs ->待使用的JDK ->Edit ->Default VM Arguments文本框中输入:-ea
开启后再执行
控制台打印出异常信息:
Exception in thread "main" java.lang.AssertionError: 加密的字符串为null