`

java断言assert的使用_转

    博客分类:
  • java
阅读更多

java断言assert的使用

文章分类:Java编程

一、assert的开启和关闭

因为JVM默认是不启动assert的。因此,你可以使用标记 –enableassertions ( 缩写 -ea ) 来开启断言功能。同样,你也可以使用标记 –disableassertions ( 缩写 -da ) 来关闭断言功能。例:

java - enableassertions AssertTest

二、assert的使用

 

 

1.assert true/false;当为false时,抛出错误,结束程序

2.assert true/false : "error info";当为false时,抛出错误,结束程序,并输出提示信息"error info"

 

语义含义

 

在运行时,如果关闭了assertion功能,这些语句将不起任何作用。如果打开了assertion功能,那么expression1的值将被计算,如果它的值为false,该语句强抛出一个AssertionError对象。如果assertion语句包括expression2参数,程序将计算出expression2的结果,然后将这个结果作为AssertionError的构造函数的参数,来创建AssertionError对象,并抛出该对象;如果expression1值为true,expression2将不被计算。

一种特殊情况是,如果在计算表达式时,表达式本身抛出Exception,那么assert将停止运行,而抛出这个Exception。

 

 

 

三、兼容

JDK 1.4 的默认编译模式并不支持断言,因此它的编译需要:

javac -source 1.4 Assert.java

 

Java代码 复制代码
  1. public class AssertTest {   
  2.   
  3.     public static void main(String[] args) {   
  4.            
  5.         System.out.println("----start---");   
  6.            
  7.         int value=-1;      
  8.         assert 0 < value:"value="+value;    
  9.   
  10.         System.out.println("----end----");   
  11.     }   
  12.   
  13. }  
public class AssertTest {

	public static void main(String[] args) {
		
		System.out.println("----start---");
		
		int value=-1;	
		assert 0 < value:"value="+value; 

		System.out.println("----end----");
	}

}

 输出:

D:\java\editplus>javac -d . AssertTest.java

 

D:\java\editplus>java -enableassertions AssertTest
----start---
Exception in thread "main" java.lang.AssertionError: value=-1
        at AssertTest.main(AssertTest.java:8)

D:\java\editplus>

语法表示

 

在语法上,为了支持assertion,Java增加了一个关键字assert。它包括两种表达式,分别如下:

  1. assert expression1;
  2. assert expression1: expression2;

在两种表达式中,expression1表示一个boolean表达式,expression2表示一个基本类型或者是一个对象(Object) ,基本类型包括boolean,char,double,float,int和long。由于所有类都为Object的子类,因此这个参数可以用于所有对象。

1、assert <boolean表达式>
      如果<boolean表达式>为true,则程序继续执行。
      如果为false,则程序抛出AssertionError,并终止执行。
2、assert <boolean表达式> : <错误信息表达式>
      如果<boolean表达式>为true,则程序继续执行。
      如果为false,则程序抛出java.lang.AssertionError,并输出<错误信息表达式>。
分享到:
评论

相关推荐

    Java断言(assert)

    Java断言(assert) Java断言是一种 debugging 机制,允许开发者在Java程序中添加检查点,以确保程序的正确性。断言可以在开发和测试阶段使用,以确保程序的正确性和可靠性。 Java断言的历史 Java断言是从 JDK 1.4 ...

    eclipse如何开启断言assert

    以下是详细的步骤,指导你在Eclipse中开启断言assert的配置流程: 1. 首先,确保你已经安装了Java Development Kit (JDK) 并且在Eclipse中配置了JDK环境。如果你还没有安装JDK,你需要先去Oracle官网下载并安装对应...

    业务异常提示处理 springboot+Assert(自定义断言)

    2. **Assert(断言)**:在Java编程中,`assert`关键字用于在测试阶段检查代码假设是否正确,它是进行单元测试和调试的强大工具。在本项目中,通过扩展Spring Boot的断言功能,我们可以创建自定义的断言方法,以适应...

    java异常处理机制示例(java抛出异常、捕获、断言)

    例如,在`AssertTest`类的`div`方法中,如果除数为零,会使用`assert`关键字抛出一个异常,并附带自定义消息。 4. **throws** 关键字:在方法签名中使用,表示该方法可能会抛出一个或多个异常。例如,`TryCatchTest...

    Java中断言使用案例

    3. **如何使用Java断言**: - **启用断言**:在JVM启动时,可以通过`-enableassertions`或`-ea`命令行选项来启用断言。也可以针对特定包或类启用断言,如`-ea:com.mycompany.myapp`。 - **断言语句**:在代码中,...

    Java陷阱之assert关键字

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

    JAVA断言技术详解

    JAVA断言技术详解,1、What will happen when you attempt to compile and run the following code? (Assume that the code is compiled and run with assertions enabled) 1. public class AssertTest 2. { 3. ...

    Java基础之关键字_Java基础之关键字_源码

    在编程语言的学习中,了解和掌握关键字是至...同时,随着Java版本的更新,也可能出现新的关键字,例如`assert`用于断言,`enum`用于枚举类型等。不断学习和掌握新的关键字,有助于提升我们的编程技能和解决问题的能力。

    Assert使用

    `Assert` 通常在 C++、Java、C# 和 Python 等多种编程语言中被使用,它的主要功能是检查程序中的条件是否满足,如果条件不满足,即断言失败,程序会抛出一个错误或者终止执行,这对于找出代码中的逻辑错误非常有帮助...

    编程语言JAVA断言使用.pdf

    在探讨Java编程语言中的断言使用时,我们首先需要了解断言是一种开发调试工具,用于在程序运行时检查代码中的特定条件是否满足。如果条件为真,则程序正常运行;如果为假,则会抛出一个AssertionError异常,终止程序...

    Selenium-java断言(90)【2021-02-02】.docx

    本文将主要围绕Selenium在Java环境下的断言操作进行详细阐述,并结合其他相关知识点进行扩展。 断言在软件测试中扮演着至关重要的角色,它是验证预期结果与实际结果是否一致的关键步骤。在Selenium中,我们可以通过...

    Java陷阱之assert关键字详解

    描述中“详细介绍了Java陷阱之assert关键字”表明了文章将系统性地讲解assert关键字的各个方面,而“有需要的朋友可以参考一下”则意味着这篇文章为那些需要深入了解Java断言功能的开发者提供了参考。 在标签中,...

    JAVA上课笔记class_08

    #### assert 断言 - **基本语法**:`assert &lt;条件表达式&gt; : &lt;消息&gt;;` - 如果 `&lt;条件表达式&gt;` 的值为 `false`,则会抛出 `AssertionError`。 - **注意事项**: - 断言默认是关闭状态,需要通过 `-ea` 参数开启,如...

    javatest.zip_Java 单元测试

    3. **断言**:在测试方法中,我们通常会使用JUnit提供的断言方法(如`assertEquals()`)来检查测试结果是否符合预期。如果实际结果与期望结果不符,测试就会失败,并显示详细的失败信息。 4. **运行测试**:可以...

    Assertions-in-java.rar_REvision_site:www.pudn.com

    在本复习资料中,我们将深入探讨Java断言的概念、用法以及其在软件开发过程中的重要性。 1. **断言概念** 断言是一种编程语句,用于声明某个点上的程序状态。它包含一个布尔表达式,该表达式预期为真。如果表达式...

    Java关键词assert的使用(基于IntelliJ IDEA)

    正确算法 private static int pythagorean(int x, int y) { return x * x + y * y; } 错误算法 private static int pythagorean(int x, int y) { return x * x + y * y +...assert想在IDE中使用,就必须开虚拟机选项

    JAVA程序设计——异常和断言

    在JAVA中,可以使用`assert`关键字来声明断言,例如`assert value &gt; 0;`,表示期望value的值大于0。如果断言的条件不满足,程序将抛出AssertionError。断言通常在开发和测试阶段启用,在生产环境中可以禁用,以提高...

    assert-text:在需要时断言多行文本

    断言文本 比较多行文本时正确的断言消息。用法 var assertText = require ( 'assert-text' ) ;assertText . equal ( 'what a wonderful\n' + 'idea for the\n' + 'module' , 'what a wonderful\n' + 'idea for a\n' ...

    java_text_soft.zip_Soft!

    9. **断言**:在测试中,断言是验证预期结果的关键,Java提供assert关键字,JUnit和TestNG也有自己的断言方法。 10. **持续集成工具**:如Maven和Gradle,它们可以帮助自动化构建、测试和部署过程,其中的插件可以...

Global site tag (gtag.js) - Google Analytics