如果程序不准备通过捕获异常来处理的错误,这时该怎么办呢?我们可以通过断言语句来解决。


断言语句在调试代码阶段非常有用,且一般用于程序不准备通过捕获异常来处理的错误。


例如:当发生某个错误时,比如,当账号交易时,支出金额为正数或收入金额为负数,此时要求程序必须立即停止执行。在调试代码阶段让断言语句发挥作用,这样就可以发现一些致命的错误,当程序正式运行时就可以关闭断言语句,但仍把断言语句保留在源代码中,如果以后应用程序又需要调试,可以重新启用断言语句。


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


点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)