java断言
实际开发中没用过出于好奇。。了解下
J2SE 1.4在语言上提供了一个新特性,就是assertion功能,从理论上来说,通过 assertion方式可以证明程序的正确性。
一般来说,assertion用于保证程序最基本、关键的正确性。assertion检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion检查通常是关闭的。
关键字assert。它包括两种表达式,分别如下:
assert expression1;
assert expression1:expression2;
expression1表示一个boolean表达式, expression2表示一个基本类型或者是一个对象(Object)
如果expression1 返回false 抛出java.lang.AssertionError
测试:
理论上应该抛出异常,实际上没有任何反应
原因是一般我们使用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
实际开发中没用过出于好奇。。了解下
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