`
Jason.Qiao
  • 浏览: 3927 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

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官网下载并安装对应...

    断言assert函数,C语言assert函数完全攻略.docx

    在使用断言assert函数时,需要注意以下几点: 1. 断言assert函数只能在Debug版本中起作用,而在Release版本中将被忽略。 2. 断言assert函数可以通过定义宏或设置编译器参数来启用或禁用断言检查。 3. 断言assert...

    ns3 assert failed. cond=”uid != 0″, msg=”Assert in TypeId::LookupByName: xxx not found”, file=../src

    在NS-3模拟环境中,你遇到了一个典型的错误提示:“ns3 assert failed. cond=”uid != 0″, msg=”Assert in TypeId::LookupByName: xxx not found”。”这个错误通常表明在查找Type Identifier (TypeId) 时出现了...

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

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

    Java中断言使用案例

    这个概念在【标题】"Java中断言使用案例"中被强调,而【描述】进一步指出文档会探讨使用断言的优势及其用法。下面将详细阐述Java中断言的原理、好处以及如何使用。 1. **什么是Java断言**: Java断言是一种机制,...

    Python断言(assert)深度解析:用法、应用场景与实践技巧

    在Python编程中,断言(assert)是一种用于验证程序状态的工具,它可以帮助开发者确保代码中的某些条件为真。如果断言的条件为假,则程序会抛出一个AssertionError异常。断言通常用于捕获编程错误,验证函数参数,...

    C语言断言assert的用法.pdf

    C语言断言assert的用法 assert是C语言中的一种断言机制,用于在程序中检测和检查某些条件是否成立。如果条件不成立,则程序将终止执行并输出错误信息。assert的用法格式为`assert(expression)`,其中expression是...

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

    Java异常处理机制是Java编程中不可或缺的一部分,它用于处理程序运行过程中可能出现的错误或异常情况。这个机制通过五个关键字:try、catch、throw、throws、finally来实现。 1. **try** 关键字:用于包围可能抛出...

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

    assert-diff:断言等于Crystal的可读差异报告

    安装将依赖项添加到您的shard.yml : dependencies : assert-diff : github : YusukeHosonuma/assert-diff 运行分shards install例子在规格中使用: require " assert-diff "struct Rectangle def initialize ( @...

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

    assert.sh:针对外壳脚本用户的断言库

    标题和描述都指向了同一个主题——`assert.sh`,这是一个专为外壳脚本用户设计的断言库。断言(Assertion)在编程中是一种强大的调试手段,它允许程序员在代码中插入检查点,以确保程序在关键点的行为符合预期。下面...

    编程语言JAVA断言使用.pdf

    `-source 1.4`指明了使用的Java编译器版本为1.4,而`-ea`(或`-enableassertions`的缩写)用于在运行时开启断言检查。 第二个示例程序是`AssertExampleTwo`类: ```java public class AssertExampleTwo { public ...

    VC中如何使用ASSERT断言

    在本篇文章中,我们将深入探讨如何在VC中使用`assert`断言,以及它在软件开发中的作用。 `assert`宏定义在`&lt;assert.h&gt;`头文件中,主要用于测试假设条件。当程序运行到含有`assert`的语句时,如果表达式的值为零(即...

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

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

    Assert使用

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

    C语言中用ASSERT调试的八个技巧

    4. 不要将 ASSERT 用于错误处理:错误处理是用于处理可能发生的错误,比如文件无法打开等,而断言是用来检测代码中是否存在缺陷的。错误处理应该与缺陷寻找分开来。 5. ASSERT 仅对开发有意义,不能用于生产:通常...

Global site tag (gtag.js) - Google Analytics