Java断言用法详解
断言(assert)是 Java 中的一条语句,一种在程序中的逻辑(如一个结果为真或假的逻辑判断式),目的是验证软件开发者预期的结果——当程序执行到断言的位置时,对应的断言应该为真。若断言不为真,则程序中止执行,并给出错误信息。
断言可以用来测试开发者对该程序的假设,即程序执行到某行后,其结果一定是预期的。如果失败,那么 Java 虚拟机将抛出一个名为 AssertionError 的异常。
断言为开发者提供了一种有效的方法来检测和纠正编程错误。
断言语句一般用于程序不通过捕获异常来处理的错误。例如,在进行账号交易时,程序设置支出的金额应为负数,收入的金额应为正数,如果发现支出的金额为正数或收入的金额为负数,那么程序必须立即停止执行,同时发现错误。当收益为正数时,就可以避开错误,但仍保留程序中的断言语句,之后再次调试时,可以重新启动断言,也可以不断发现程序中的新的问题和解决语句。
第一种语法格式如下:
第二种语法格式如下:
【实例】断言的应用。
1) 打开 IDEA 界面,选择“Run”→“Edit Configurations”命令,如下图所示。
图 1 IDEA界面
2) 打开“Run/Debug Configurations”对话框,如下图所示。
图 2 “Run/Debug Configurations”对话框
3) 单击图 2 所示的“Modify options”下拉按钮,选择“Add VM options”命令,如下图所示。
图 3 选择“Add VM options”命令
4) 打开图 4 所示的界面,并在①处的文本框中输入“-ea”或“-enableassertions”,设置完成后先单击右下角的“Apply”按钮,再单击“OK”按钮即可。
图 4 Add VM options界面
简单来说,在 IDEA 中开启断言就是设置 Java 虚拟机的参数(参数是-ea或-enableassertions)。
再次运行 Example6_5,可以看到,断言机制已生效,运行结果如下图所示。
图 5 运行结果
断言可以用来测试开发者对该程序的假设,即程序执行到某行后,其结果一定是预期的。如果失败,那么 Java 虚拟机将抛出一个名为 AssertionError 的异常。
断言为开发者提供了一种有效的方法来检测和纠正编程错误。
断言语句一般用于程序不通过捕获异常来处理的错误。例如,在进行账号交易时,程序设置支出的金额应为负数,收入的金额应为正数,如果发现支出的金额为正数或收入的金额为负数,那么程序必须立即停止执行,同时发现错误。当收益为正数时,就可以避开错误,但仍保留程序中的断言语句,之后再次调试时,可以重新启动断言,也可以不断发现程序中的新的问题和解决语句。
Java断言的语法
要添加断言,只需要使用关键字 assert 并为其赋予布尔条件即可。使用断言的语法格式有以下两种。第一种语法格式如下:
assert [boolean 表达式]若 [boolean表达式] 为 true,则程序继续执行;若为 false,则程序抛出 AssertionError,并终止执行。
第二种语法格式如下:
assert [boolean 表达式:错误表达式(日志)]若 [boolean表达式] 为 true,则程序继续执行;若为 false,则程序抛出 java.lang.AssertionError,并输出[错误信息]。
【实例】断言的应用。
package chapter6; import java.util.Scanner; public class Example6_5 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入你的年龄:"); int value = scanner.nextInt(); assert value >= 18 : "不合法"; System.out.println("输入值为:" + value); } }运行结果为:
请输入你的年龄:10
输入值为:10
在IDEA中开启断言
在 IDEA 中开启断言的步骤如下。1) 打开 IDEA 界面,选择“Run”→“Edit Configurations”命令,如下图所示。
图 1 IDEA界面
2) 打开“Run/Debug Configurations”对话框,如下图所示。
图 2 “Run/Debug Configurations”对话框
3) 单击图 2 所示的“Modify options”下拉按钮,选择“Add VM options”命令,如下图所示。
图 3 选择“Add VM options”命令
4) 打开图 4 所示的界面,并在①处的文本框中输入“-ea”或“-enableassertions”,设置完成后先单击右下角的“Apply”按钮,再单击“OK”按钮即可。
图 4 Add VM options界面
简单来说,在 IDEA 中开启断言就是设置 Java 虚拟机的参数(参数是-ea或-enableassertions)。
再次运行 Example6_5,可以看到,断言机制已生效,运行结果如下图所示。
图 5 运行结果