`
lgl669
  • 浏览: 173752 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java断言 assert

    博客分类:
  • java
阅读更多
java 断言 assert 初步使用:断言开启、断言使用主要总结一下在eclipse中如何使用断言。

(一)首先明确:

   java断言Assert是jdk1.4引入的。

jvm 断言默认是关闭的。

断言是可以局部开启的,如:父类禁止断言,而子类开启断言,所以一般说“断言不具有继承性”。

   断言只适用于复杂的调试过程。

断言一般用于程序执行结果的判断,千万不要让断言处理业务流程。

(二)判断eclipse是否开启了断言,代码如下:

public class AssertTest {

public static void main(String[] args) {
   boolean isOpen = false; 
   assert isOpen=true; //如果开启了断言,会将isOpen的值改为true
   System.out.println(isOpen);//打印是否开启了断言  
}

}

执行上面代码,如果打印 true说明已经启用了断言,如果为 false 则没有启用断言。

如果没有启用断言,则按按照下面方法开启断言。

(三)eclipse中开启断言

选择菜单:Run ---> Run... ---> 选择 Arguments 选项卡

在 VM arguments 文本框中输入: -ea   注意中间没有空格,如果输入 -da 表示禁止断言。

然后关闭该窗口,提示保存,然后保存就开启了断言。

再次执行第二步操作,如果打印true,说明开启断言成功。

如果禁止断言,则按第二步操作中,删除 -ea 或者将 -ea 改为 -da 即可。

(四)断言使用

第 1 种使用方法:

public static void main(String[] args) {
   boolean isOk = 1>2;
   assert isOk;
   System.out.println("程序正常");
  
}

因为 1>2 显然是错误的,所以执行结果抛出异常:Exception in thread "main" java.lang.AssertionError

如果把 1>2 改为 1<2 则程序能顺利执行,打印 “程序正常”


第 2 种使用方法:

public static void main(String[] args) {
     boolean isOk = 1>2;
     try{
           assert isOk : "程序错误";
           System.out.println("程序正常");
        }catch(AssertionError err){
          System.out.println(err.getMessage());
     }
  
}

assert 后面跟个冒号表达式。如果冒号前为 true,则冒号后面的被忽略。

如果冒号前为false,则抛出AssertionError ,错误信息内容为冒号后面的内容,上面程序执行结果就是打印:"程序错误"

(五)有关断言的更多参数(转帖一下):

-ea java -ea 打开所有用户类的assertion
-da java -da 关闭所有用户类的assertion
-ea:<classname> java -ea:MyClass1 打开MyClass1的assertion
-da:<classname> java -da: MyClass1 关闭MyClass1的assertion
-ea:<packagename> java -ea:pkg1 打开pkg1包的assertion
-da:<packagename> java -da:pkg1 关闭pkg1包的assertion
-ea:... java -ea:... 打开缺省包(无名包)的assertion
-da:... java -da:... 关闭缺省包(无名包)的assertion
-ea:<packagename>... java -ea:pkg1... 打开pkg1包和其子包的assertion
-da:<packagename>... java -da:pkg1... 关闭pkg1包和其子包的assertion
-esa java -esa 打开系统类的assertion
-dsa java -dsa 关闭系统类的assertion
综合使用 java -dsa:MyClass1:pkg1 关闭MyClass1和pkg1包的assertion


呵呵,总结一个东西比学会一个东西要花费更多的时间。
分享到:
评论

相关推荐

    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抛出异常、捕获、断言)

    断言(Assertion)是Java中的一个功能,用于在开发阶段检查程序状态。在`AssertTest`中,使用`assert`语句来确保除数不为零。如果条件不满足,断言失败,程序会抛出`AssertionError`异常。在生产环境中,断言通常是...

    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陷阱之assert关键字

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

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

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

    Java中断言使用案例

    Java断言是一种机制,用于在开发和测试阶段插入条件检查,以便快速捕获不合理的或错误的代码行为。断言语句通常包含一个布尔表达式,如果该表达式为`false`,则表明出现了程序员没有预见到的情况,程序会抛出`...

    编程语言JAVA断言使用.pdf

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

    Java陷阱之assert关键字详解

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

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

    断言语句由assert引起,后面接boolean表达式,再接上冒号,最后是一旦断言错误的报错语句。 assert pythagorean(3, 4) == 25 : Error; IDE中的assert assert想在IDE中使用,就必须开虚拟机选项

    Assert使用

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

    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' ...

    Junit测试Void方法

    JUnit 是 Java 开发者常用的单元测试框架,它能够帮助开发者编写自动化测试案例,从而提高代码的质量和可维护性。然而,对于返回类型为 `void` 的方法,由于其没有显式的返回值,传统的 Junit 断言方法(如 `...

    Java几种常用的断言风格你怎么选

    Java断言风格选择 Java断言是一种常用的软件测试技术,用于验证软件系统的正确性。Java提供了多种断言风格供选择,包括Assert风格、BDD风格等。在日常工作中,不管是写Unit Test,还是采用TDD的编程方式进行开发,...

    SCJP 310-055 题库4 异常和断言

    虽然在给定的部分内容中没有直接涉及到断言的具体题目,但在Java中,断言的使用可以通过`assert`关键字实现。例如: ```java assert condition : message; ``` 其中`condition`是表达式,如果其结果为`false`,则...

    浅析Java异常处理中断言的使用

    Java断言的语法有两种形式: 1. `assert &lt;布尔表达式&gt;;` 2. `assert &lt;布尔表达式&gt; : &lt;细节描述&gt;;` 第一种形式仅包含一个布尔表达式,如果表达式的值为`false`,则抛出`AssertionError`异常。第二种形式在表达式...

    truth,java单元测试的断言/命题框架.zip

    Truth的核心概念是`TruthJUnit`,它扩展了JUnit的`Assert`类,引入了`Truth`对象,该对象提供了各种静态方法来构建复杂的断言链。例如,`Truth.assertThat()`方法可以用于创建一个`Subject`,`Subject`是特定类型的...

Global site tag (gtag.js) - Google Analytics