zoukankan      html  css  js  c++  java
  • assert断言

    断言(Assertion)是一种调试程序的方式。在Java中,使用assert关键字来实现断言。

    语句assert x >= 0;即为断言,断言条件x >= 0预期为true。如果计算结果为false,则断言失败,抛出AssertionError

    使用assert语句时,还可以添加一个可选的断言消息:

    assert x >= 0 : "x must >= 0";
    

    这样,断言失败的时候,AssertionError会带上消息x must >= 0,更加便于调试

    断言x必须大于0,实际上x-1,断言肯定失败。执行上述代码,发现程序并未抛出AssertionError,而是正常打印了x的值。

    这是怎么肥四?为什么assert语句不起作用?

    这是因为JVM默认关闭断言指令,即遇到assert语句就自动忽略了,不执行。

    要执行assert语句,必须给Java虚拟机传递-enableassertions(可简写为-ea)参数启用断言。所以,上述程序必须在命令行下运行才有效果:

    $ java -ea Main.java
    Exception in thread "main" java.lang.AssertionError
    	at Main.main(Main.java:5)
    

    还可以有选择地对特定地类启用断言,命令行参数是:-ea:com.itranswarp.sample.Main,表示只对com.itranswarp.sample.Main这个类启用断言。

    或者对特定地包启用断言,命令行参数是:-ea:com.itranswarp.sample...(注意结尾有3个.),表示对com.itranswarp.sample这个包启动断言。

    实际开发中,很少使用断言。更好的方法是编写单元测试,后续我们会讲解JUnit的使用。

  • 相关阅读:
    ARC和MRC兼容和转换
    ARC下的内存管理
    嵌入式硬件系列一:处理器介绍
    嵌入式Linux GCC常用命令
    一. Linux 下的常用命令
    ARM学习中的必知基本常识
    二叉搜索树详解
    从入门到高手,嵌入式必会技能及学习步骤总结
    史上最全Linux目录结构说明
    排序系列之六:快速排序法进阶
  • 原文地址:https://www.cnblogs.com/hebiao/p/12144073.html
Copyright © 2011-2022 走看看