概述
package entity;
public class Test {
public static void main(String args[]){
// 断言一般用于程序不准备通过捕获异常来处理的错误。
// 打开断言的两种方式
// 方法一:
// Window > Preferences > Java > Installed JREs 在右边选中自己在用的 jre 环境,
// 点击Edit,在 Default VM arguments 中输入 -ea 即可
//
// 方法二:
// Run > Run Configurations > 左侧 Apache tomcat 选中在用的 Tomcat 服务器
// > 右侧 Arguments > VM arguments 添加 -ea 需要加个空格与其他项分隔
// boolean isOpen = false;
// assert isOpen=true; //如果开启了断言,会将isOpen的值改为true
// System.out.println(isOpen);//打印是否开启了断言
// //答案是错误,所以会打印异常
// boolean isOk = 1>2;
// assert isOk;
// System.out.println("程序正常");
boolean isOk = 1>2;
try{
assert isOk : "程序错误";
System.out.println("程序正常");
}catch(AssertionError err){//不能写Exception,不然打印不出 assert isOk : "程序错误";
System.out.println(err.getMessage());
}
}
}
=====================================================================================
// 断言一般用于程序不准备通过捕获异常来处理的错误。
主要总结一下在eclipse中如何使用断言。
(一)首先明确:
jdk1.4以上才有,jvm 断言默认是关闭的。
(二)判断eclipse是否开启了断言,代码如下:
public class AssertTest {
public static void main(String[] args) {
boolean isOpen = false;
assert isOpen=true; //如果开启了断言,会将isOpen的值改为true
System.out.println(isOpen);//打印是否开启了断言
}
}
执行上面代码,如果打印 true说明已经启用了断言,如果为 false 则没有启用断言。
如果没有启用断言,则按按照下面方法开启断言。
(三)eclipse中开启断言
1. 使用 Eclipse 等 IDE 工具开启断言的方式:
Window > Preferences > Java > Installed JREs 在右边选中自己在用的 jre 环境,点击Edit,在 Default VM arguments 中输入 -ea 即可
2. Eclipse 为 Tomcat 打开断言的方式:
Run > Run Configurations > 左侧 Apache tomcat 选中在用的 Tomcat 服务器 > 右侧 Arguments > VM arguments 添加 -ea 需要加个空格与其他项分隔
(四)断言使用
第 1 种使用方法:
public static void main(String[] args) {
boolean isOk = 1>2;
assert isOk;
System.out.println("程序正常");
}
因为 1>2 显然是错误的,所以执行结果抛出异常:Exception in thread "main" java.lang.AssertionError
如果把 1>2 改为 1<2 则程序能顺利执行,打印 “程序正常”
第 2 种使用方法:
public static void main(String[] args) {
boolean isOk = 1>2;
try{
assert isOk : "程序错误";
System.out.println("程序正常");
}catch(AssertionError err){
System.out.println(err.getMessage());
}
}
assert 后面跟个冒号表达式。如果冒号前为 true,则冒号后面的被忽略。
如果冒号前为false,则抛出AssertionError , 错误信息内容为冒号后面的内容,上面程序执行结果就是打印:"程序错误"
======================================================================================
JAVA是从JDK1.4才开始支持断言的(添加了关键字assert),请注意老版的JRE不支持。
断言的副作用
由于程序员的问题,断言的使用可能会带来副作用 ,例如:
boolean isEnable=false;
//...
assert isEnable=true;
这个断言的副作用是因为它修改了程序中变量的值并且未抛出错误,这样的错误如果不细心的检查是很难发现的。但是同时我们可以根据以上的副作用得到一个有用的特性,根据它来测试断言是否打开。
public class AssertExampleTwo{
public static void main(String args[]){
boolean isEnable=false;
//...
assert isEnable=true;
if(isEnable==false){
throw new RuntimeException("Assertion shoule be enable!");
}
}
}
最后
以上就是眯眯眼冬日为你收集整理的JAVA_断言的全部内容,希望文章能够帮你解决JAVA_断言所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复