如果程序不准备通过捕获异常来处理的错误,这时该怎么办呢?我们可以通过断言语句来解决。
断言语句在调试代码阶段非常有用,且一般用于程序不准备通过捕获异常来处理的错误。
例如:当发生某个错误时,比如,当账号交易时,支出金额为正数或收入金额为负数,此时要求程序必须立即停止执行。在调试代码阶段让断言语句发挥作用,这样就可以发现一些致命的错误,当程序正式运行时就可以关闭断言语句,但仍把断言语句保留在源代码中,如果以后应用程序又需要调试,可以重新启用断言语句。
1.断言语句的语法格式
我们使用关键字assert声明一条断言语句,断言语句有以下两种格式:
assert booleanExpression; //求值为boolean类型的表达式 assert booleanExpression:messageException; //求值为字符串类型的表达式
2.作用条件
1)booleanExpression
当值为true时,程序从断言语句处继续执行。
当值为false时,程序从断言语句处停止执行。
2)booleanExpression:messageExpception
当值为true时,程序从断言语句处继续执行。
当值为false时,程序从断言语句处停止执行,并输出messageException表达式的值,提示用户出现了怎样的问题。
例如,对于断言语句:
assert i >= 0;
如果表达式i >= 0的值为true,程序继续执行;如果表达式i >= 0的值为false,程序立刻结束执行。
3.启用与关闭断言语句
当使用Java解释器直接运行应用程序时,默认地关闭断言语句,在调试程序时可以使用-ea启用断言语句,例如:
java -ea mainclass
例如:
public class Main { public static void main(String[] args) { int [] score = {-120,98,96,94,92}; int sum = 0; for(int number:score){ //数组用for遍历 assert number>=0:"负数不能是成绩"; sum = sum+number; } System.out.println("总成绩:"+sum); } }
运行结果如下:
总成绩:260
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程