如果程序不准备通过捕获异常来处理的错误,这时该怎么办呢?我们可以通过断言语句来解决。
断言语句在调试代码阶段非常有用,且一般用于程序不准备通过捕获异常来处理的错误。
例如:当发生某个错误时,比如,当账号交易时,支出金额为正数或收入金额为负数,此时要求程序必须立即停止执行。在调试代码阶段让断言语句发挥作用,这样就可以发现一些致命的错误,当程序正式运行时就可以关闭断言语句,但仍把断言语句保留在源代码中,如果以后应用程序又需要调试,可以重新启用断言语句。
我们使用关键字assert声明一条断言语句,断言语句有以下两种格式:
assertbooleanExpression;//求值为boolean类型的表达式assertbooleanExpression:messageException;//求值为字符串类型的表达式
当值为true时,程序从断言语句处继续执行。
当值为false时,程序从断言语句处停止执行。
当值为true时,程序从断言语句处继续执行。
当值为false时,程序从断言语句处停止执行,并输出messageException表达式的值,提示用户出现了怎样的问题。
例如,对于断言语句:
asserti>=0;
如果表达式i >= 0的值为true,程序继续执行;如果表达式i >= 0的值为false,程序立刻结束执行。
当使用Java解释器直接运行应用程序时,默认地关闭断言语句,在调试程序时可以使用-ea启用断言语句,例如:
java-eamainclass
例如:
publicclassMain{publicstaticvoidmain(String[]args){int[]score={-120,98,96,94,92};intsum=0;for(intnumber:score){//数组用for遍历assertnumber>=0:负数不能是成绩;sum=sum+number;}System.out.println(总成绩:+sum);}}
运行结果如下:
总成绩:260