Java断言语句
断言语句在调试代码阶段非常有用,断言语句一般用于 程序不准备通过捕获异常来处理的错误,例如,当发生某个错误时,要求程序必须立即停止执行。在调试代码阶段让断言语句发挥作用,
这样就可以发现一些致命的错误,当程序正式运行时就可以关闭断言语句,但仍把断言语句保留在源代码中,如果以后应用程序又需要调试,可以重新启用断言语句。
断言语句的语法格式
使用关键字assert声明一条断言语句,断言语句有以下两种形式:
assert booleanExpression;
assert booleanExpression:messageException;

例如,对于断言语句:
assert number>=0;

如果表达式number>=0 的值为 true,程序继续执行,否则程序立刻结束执行。
在上述断言语向的语法格式中,booleanExpression 必须是求值为 boolean 型的表达式,messageException可以是求值为字符串的表达式
如果使用
assert booleanExpression;

形式的断言语句,当booleanExpression的值为true时,程序从断言语句处继续执行;值为false时,程序从断言语句处停止执行。
如果使用
assert booleanExpression:messageException;

形式的断言语句,当booleanExpression的值为true时,程序从断言语句处继续执行;值为false时,程序从断言语句处停止执行,并输出messageException表达式的值,提示用户出了怎么样的问题。
启用与关闭断言语句
当使用Java解释器直接运行应用程序时,默认地关闭断言语句,在调试程序时可以使用-ea启用断言语句,例如:
java -ea mainclass

例子:
import java.util.Scanner;
public class Test{
public static void main(String[] args) {
int [] score ={-120,98,89,120,99};
int sum = 0;
for(int number:score){ //数组用for遍历
assert number>=0:"负数不能是成绩";
sum=sum+number;
}
System.out.println("总成绩:"+sum);
}
}


Java断言语句的更多相关文章
- Java断言assert
public class Welcome{ public static void main(String[] args){ assert false; System.out.println(" ...
- java断言
public class New{ public static void main(String[] args){ assert false; System.out.println("pas ...
- 浅析Java断言
Java断言 1.断言的概念 Java的断言机制assert是一种用于测试阶段的语法特性,它允许我们在测试期间向代码中插入一些检查语句.代码发布时这些检测语句将被自动移除. 断言关键字assert有下 ...
- Java finally语句到底是在return之前还是之后执行(JVM字节码分析及内部体系结构)?
之前看了一篇关于"Java finally语句到底是在return之前还是之后执行?"这样的博客,看到兴致处,突然博客里的一个测试用例让我产生了疑惑. 测试用例如下: public ...
- 【Demo 0002】Java基础-语句
本章学习要点: 1. 掌握Java关健语句使用方法; 2. 理解与语句相关的关键字用法; 一.Java 关键语句 Java语句以及关联关键字与C完全相 ...
- K:java 断言 assert 初步使用:断言开启、断言使用
@转自天地悠悠的个人博客 主要总结一下在eclipse中如何使用断言. (一)首先明确: java断言Assert是jdk1.4引入的. jvm 断言默认是关闭的. 断言是可以局部开启的,如:父类禁止 ...
- 7#Java基本语句语法
Java基本语句语法https://github.com/DuGuQiuBai/Java/blob/master/day03/day03%E6%80%BB%E7%BB%93.txt 1:位运算符(了解 ...
- 【转】Java finally语句到底是在return之前还是之后执行?
网上有很多人探讨Java中异常捕获机制try...catch...finally块中的finally语句是不是一定会被执行?很多人都说不是,当然他们的回答是正确的,经过试验,至少有两种情况下final ...
- java断言assert初步使用:断言开启、断言使用
1 说明 java断言assert是jdk1.4引入的. jvm断言默认是关闭的. 断言可以局部开启的,如:父类禁止断言,而子类开启断言,所以一般说“断言不具有继承性”. 断言只适用复杂的调式过程. ...
- python assert 断言语句的作用
python assert 断言语句的作用 assert语句的应用场景 使用assert语句是一个很好的习惯. 我们在编写代码的时候, 不知道程序会在什么时候崩溃, 与其让它在深度运行时崩溃, 不如预 ...
随机推荐
- (0409) Pycharm 的设置--参数设置(运行.py文件带参数,例如argument) 比如: demo.py -prj xxx
1) https://www.cnblogs.com/yksgzlyh/p/10221960.html 点击"Run"菜单下的"Edit Configurations. ...
- 尚硅谷大数据技术之Kettle软件介绍与使用方法
ETL(Extract-Transform-Load的缩写,即数据抽取.转换.装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种ETL工具的使用,必不可 ...
- oracle中 null 和 '' 和' '的比对
SELECT LENGTH(''),LENGTH(NULL),LENGTH(' '),LENGTH(TRIM(' ')) FROM dual; 返回结果为 null,null,1,null 也就是在o ...
- (Yocto)Imx8mp的时间结构
1.构成图 #kernel\time\timekeeping.c #drivers\rtc\class.c 1.time date source 解释 rx8010sj: 自己定制的开发板 ...
- 兼容ie8的Html+Css+Js
1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset=" ...
- 全国IP段列表
http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest Linux下执行如下命令可将中国大陆ip格式化并导出 wget -c htt ...
- top usage
https://www.cnblogs.com/dragonsuc/p/5512797.html
- win10 右键文件夹卡死
遇到右键文件夹卡死的问题,网上查找尝试, 命令窗口输入如下命令: SFC/Scannow 还有个思路 ,360安全 软件大全下载一个右键管理软件删除多余无用的右键选项: 参考:https://answ ...
- XSS - Cross Site Scripting
origin url: https://www.synopsys.com/glossary/what-is-csrf.html#:~:text=Definition,has in an authent ...
- pytest_runtest_makereport 获取pytest的测试结果和caseid
目的: 自动获取pytest case执行结果和caseid 存为变量,后续可以和case管理工具集成 @pytest.hookimpl(hookwrapper=True, tryfirst=True ...