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

断言语句的语法格式

使用关键字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);
}
}

最新文章

  1. Windows bat脚本学习(1)
  2. 转——JAVA中calendar,date,string 的相互转换和详细用法
  3. JS操作DOM
  4. [转]NSTimer和CADisplayLink的基本用法
  5. 显示回收站.reg
  6. linux库文件编写入门(笔记)
  7. [Cocos2d-x]CCSpriteFrameCache的使用
  8. 为什么不要在android或者ios上直连mysql或者sqlserver之类的数据库(跳大神)
  9. BZOJ 3924: [Zjoi2015]幻想乡战略游戏(动态点分治)
  10. 思考题:用Use Case获取需求的方法是否有什么缺陷,还有什么地方需要改进?(提示:是否对所有的应用领域都适用?使用的方便性?.......)
  11. Python网络数据采集2-wikipedia
  12. PostgreSQL两种分页方法查询时间比较
  13. jq判断是PC还是手机端的方法
  14. linux中使用gdb调试程序
  15. 菜鸡学C语言之寻根溯源
  16. 引入springboot的两种方式以及springboot容器的引入
  17. AvalonJS+MVVM实战部分源码
  18. [UE4]Get Parent,widget获得父容器实例对象
  19. hyperledger-fabirc1.2-ca-server的生产示例
  20. Intellij Idea 导入多个maven项目展示在左侧栏Maven Projects

热门文章

  1. typora破解使用
  2. dart+flutter中使用PaginatedDataTable分页时最后一页多出空白行问题
  3. nginx status code 状态码
  4. Vue 事件监听
  5. 查找大文件-清理linux磁盘
  6. tidb 杂记
  7. 删除 gnome自带的Videos软件
  8. Nginx基础篇
  9. 关于之前ecplices没法正常导入使用fx包的笔记
  10. openwrt 配置虚拟wan口