Java断言

作者: 433c801e5456 | 来源:发表于2019-06-10 11:14 被阅读1次

断言的概念
断言用于证明和测试程序的假设,比如“这里的值大于 5”。
断言可以在运行时从代码中完全删除,所以对代码的运行速度没有影响。
断言的使用
断言有两种方法:
一种是 assert<<布尔表达式>> ;
另一种是 assert<<布尔表达式>> :<<细节描述>>。
如果布尔表达式的值为false , 将抛出AssertionError 异常; 细节描述是AssertionError异常的描述文本使用 javac –source 1.4 MyClass.java 的方式进行编译示例如下:

public class AssertExample {
    public static void main(String[] args) {
        int x = 10;
        if (args.length > 0) {
            try {
                x = Integer.parseInt(args[0]);
            } catch (NumberFormatException nfe) {
                /* Ignore */
            }
        }
        System.out.println("Testing assertion that x == 10");
        assert x == 10 : "Our assertion failed";
        System.out.println("Test passed");
    }
}

由于引入了一个新的关键字,所以在编译的时候就需要增加额外的参数,要编译成功,必须使用 JDK1.4 的 javac 并加上参数'-source 1.4',例如可以使用以下的命令编译上面的代码:
javac -source 1.4 AssertExample.java
以上程序运行使用断言功能也需要使用额外的参数(并且需要一个数字的命令行参数),例如:
java -ea AssertExample 1
程序的输出为:

Testing assertion that x == 10
Exception in thread "main" java.lang.AssertionError:Our assertion failed
at AssertExample.main(AssertExample.java:20)

由于输入的参数不等于 10,因此断言功能使得程序运行时抛出断言错误,注意是错误, 这意味着程序发生严重错误并且将强制退出。断言使用 boolean 值,如果其值不为 true 则 抛出 AssertionError 并终止程序的运行。
断言推荐使用方法
用于验证方法中的内部逻辑,包括:
内在不变式
控制流程不变式
后置条件和类不变式
注意:不推荐用于公有方法内的前置条件的检查。
运行时屏蔽断言
运行时要屏蔽断言,可以用如下方法:
java –disableassertions 或 java –da 类名
运行时要允许断言,可以用如下方法:
java –enableassertions 或 java –ea类名

如果你现在也在学习java,在入门学习java的过程当中缺乏系统的学习教程,或者说缺乏一个交流技术的地方,你可以申请加入我的Java学习交流qun:六四一,一二一,九四八。里面还有我这几年整理的java学习手册,面试题,开发工具,PDF文档教程,你可以自行去下载。

相关文章

  • Java断言

    断言概述 编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设 可以将断言看作是异常处理的一种高级...

  • Java断言

    断言的概念断言用于证明和测试程序的假设,比如“这里的值大于 5”。断言可以在运行时从代码中完全删除,所以对代码的运...

  • Java 断言机制

    用途 使用断言可以创建更稳定,品质更好且易于除错的代码当需要在一个值为FALSE时中断当前操作的话,可以使用断言单...

  • java 异常 断言

    异常机制使用技巧 异常处理不能代替简单的测试 不要过分化的细分异常 不要压制异常 在检测错误时,苛刻要比放任好;在...

  • JAVA断言-assert

    断言是为了方便调试程序,并不是发布程序的组成部分。 1.开启断言 VM options配置 -ea 2.断言有两种...

  • java断言解释

    这是这段时间内遇到的一个关键字,听到时不明白,所以查找资料了解了一下,虽然现在不怎么用,但毕竟是java中的一个关...

  • java断言使用

    在c++中我们习惯用断言(Assertion),静态断言(Static Assertion)等对参数和环境做出判断...

  • Selenium Web Driver自动化测试(java版)系

    这篇文章介绍怎样用java对测试用例进行断言。断言英文是assertions,其实就是执行test case后验证...

  • Java陷阱之assert关键字

    一、概述 在C和C++语言中都有assert关键,表示断言。在Java中,同样也有assert关键字,表示断言,用...

  • Java的关键字(一 ) assert 篇

    在Java中assert 是一个不常用的关键字,他代表的是 断言 。 那么就有很多人问了,断言是什么? ...

网友评论

    本文标题:Java断言

    本文链接:https://www.haomeiwen.com/subject/drgaxctx.html