`

assert关键字

 
阅读更多

语法

java中,assert关键字是从java se 1.4引入的,java默认是不启动断言检查的(这个时候所有的断言语句都被忽略),想要开启则需输入启动参数-ea 或-enableassertions

它的语法很简单

1.assert<boolean表达式>

如果表达式为true,则程序继续执行

如果为false则抛出AssertionError,并终止执行(或者可以捕获这个error)

2.assert<boolean表达式>:<错误信息表达式>

如果表达式为true,则程序继续执行

如果为false,则抛出AssertionError,并输出<错误信息表达式>

 

实例

public class AssertFoo {
    public static void main(String args[]) {
        //断言1结果为true,则继续往下执行
        assert true;
        System.out.println("断言1没有问题,Go!");
 
        System.out.println("\n-----------------\n");
 
        //断言2结果为false,程序终止
        assert false : "断言失败,此表达式的信息将会在抛出异常的时候输出!";
        System.out.println("断言2没有问题,Go!");
    }
}
 
保存代码到C:\AssertFoo.java,然后按照下面的方式执行,查看控制台输出结果:
 
1、编译程序:
C:\>javac AssertFoo.java
 
2、默认执行程序,没有开启-ea开关:
C:\>java AssertFoo
断言1没有问题,Go!
 
-----------------
 
断言2没有问题,Go!
 
3、开启-ea开关,执行程序:
C:\>java -ea AssertFoo
断言1没有问题,Go!
 
-----------------
 
Exception in thread "main" java.lang.AssertionError: 断言失败,此表达式的信息将
会在抛出异常的时候输出!
        at AssertFoo.main(AssertFoo.java:10)

 

 

个人觉得这个关键字作用跟if有什么区别呢?。

分享到:
评论

相关推荐

    Java陷阱之assert关键字

     在Java中,assert关键字是从JAVA SE 1.4 引入的,为了避免和老版本的Java代码中使用了assert关键字导致错误,Java在执行的时候默认是不启动断言检查的(这个时候,所有的断言语句都将忽略!),如果要开启断言...

    Java陷阱之assert关键字详解

    标题中提到的“Java陷阱之assert关键字详解”所指的知识点主要涉及Java语言中assert关键字的介绍、使用、限制以及使用时需注意的潜在问题。Assert关键字作为Java SE 1.4版本引入的功能,其设计目的是为了帮助开发者...

    Python assert关键字原理及实例解析

    这篇文章主要介绍了Python assert关键字原理及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Python assert(断言)用于判断一个表达式,在表达式...

    java2参考大全 中文

    本书由世界级编程大师Herbert Schildt撰写,英文原书一经出版,就受到了读者的热烈欢迎。...书中包含了Java 2, 版本1.3中新增的特征,其中最重要的是assert关键字、基于通道的I/O子系统、成链的异常和网络增强功能等。

    java关键字整理

    当assert关键字后面的布尔表达式为`false`时,会抛出`AssertionError`异常。例如: ```java assert x &gt; 0 : "x must be positive"; ``` #### B系列关键字 - **break**:用于中断循环或者`switch-case`语句中的...

    Java 2 教程(第五版)(PDG)

    assert关键字则为单元测试提供了便利,帮助开发者确保代码的正确性。 下载《Java 2 教程(第五版)(PDG)》的源代码和源码资料,可以帮助读者更直观地学习和实践这些概念。通过阅读源码,你可以深入了解各种Java技术的...

    safe-assert:适用于Python的安全且可组合的断言,可以与优化模式一起使用

    用法与assert关键字相同,但具有以下功能: from safe_assert import safe_assert def sort_positive_numbers ( numbers : List [ int ]) -&gt; List [ int ]: safe_assert ( all ( num &gt;= 0 for num in numbers ), '...

    jdk1.5中文

    Java 5.0引入了assert关键字,用于编写单元测试和调试代码。assert语句在生产环境中默认关闭,但在测试环境中可以启用,帮助检测程序中的错误。 9. **并发编程改进** Java 5.0对并发编程提供了更好的支持,如java...

    变态级java程序员面试32问

    assert关键字用于添加断言到程序中。断言是一种编程技术,用于验证程序假设的有效性。在运行时可以通过命令行参数启用或禁用断言检查。例如: ```java assert (i &gt; 0) : "i 应该大于零"; ``` 这里的表达式 `(i &gt; 0...

    IBM、SUN等公司的Java面试题集

    以下是一些常见Java面试题的详细解答,涵盖了`final`, `finally`, `finalize`, 匿名内部类, 静态嵌套类与内部类, 运算符`&`与`&&`的区别, HashMap与Hashtable, Collection与Collections, assert关键字, 垃圾回收(GC)...

    C++0x_新特性.pdf

    6. static_assert 关键字 static_assert用于在编译时进行断言检查,如果断言失败,编译器会停止编译并显示错误信息。这有助于在编译时期发现可能的问题,避免运行时错误。 7. trailing return type(尾置返回类型)...

    python pytest测试实战.pdf

    它对assert语句进行了重写,使得断言失败时直接使用原生的assert关键字,而不是像unittest那样需要使用特定的方法如self.assertEqual()。此外,pytest能直接运行unittest和nose编写的测试,增强了兼容性。更重要的是...

    李星华老师讲解java常见面试题笔记

    8. assert关键字:在JDK1.4以后,assert用于断言,即检查程序状态,确保值符合预期。默认情况下,assert是关闭的,需要通过启动参数-ea启用。 9. sleep()与wait():sleep()是Thread类的方法,让当前线程暂停指定...

    Java_基础面试题.

    8. assert关键字:assert用于断言,帮助测试代码的正确性,JDK1.4后引入,需要启动选项-ea激活。 9. GC(垃圾收集):用于自动回收不再使用的内存,避免内存泄漏,提高系统效率。 10. String对象创建:`new String...

    jdk1.4绿色免安装版

    5. ** assert 关键字**: `assert`关键字用于编写单元测试,帮助开发者验证代码的正确性,只有在启动Java虚拟机时启用断言,它们才会生效。 6. **改进的集合框架**: JDK 1.4对集合框架进行了增强,包括`Set`、`List`...

    Java面试宝典版.doc

    6. **assert关键字**:assert用于断言,即在开发和测试阶段验证代码的正确性。当assert后的布尔表达式为false时,系统会抛出AssertionError。在生产环境中,通常会禁用assert。 7. **String对象创建**:`new String...

    JDK1.4.2官方英文API

    `assert`关键字在JDK 1.4中首次引入,用于编写单元测试和调试代码,它可以检查程序内部的假设是否正确。例如:`assert condition;`如果条件为`false`,则抛出`AssertionError`。 5. **异常链(Exception Chaining...

    SCJP认证最新模拟资料

    学习如何使用assert关键字进行程序调试,理解其在代码中的作用和使用条件。 这份模拟题集很可能包含了上述所有知识点的测试题目,旨在帮助考生通过实战练习加深理解。记住,单纯的记忆并不能替代深入的理解,只有将...

Global site tag (gtag.js) - Google Analytics