由于断言在Java程序中用于开发和测试阶段,考虑到以后很有可能会用到,在此先记类一下。

在Java语言中,给出了3种处理系统错误的机制:

1.抛出一个异常

2.日志

3.使用断言

什么时候使用断言呢?请记住下面几点:

1.断言失败是致命的、不可恢复的错误

2.断言只用于开发和测试阶段

因此,不应该使用断言向程序的其他部分通告发生了可恢复性的错误,或者不应该作为程序向用户通告问题的手段。断言只应该用于在测试阶段确定程序内部的错误位置。

那么下面我将给予断言的使用方法:

语法1:assert 条件;

条件即代表一个布尔类型的表达式,如果为真,就继续正常运行,如果为假,程序退出。

语法2:assert 条件 :表达式;

条件是一个布尔表达式,表达式可以是一个基本类型或者Object类型,如果条件为真,则程序忽略后面的表达式继续运行;

如果条件为假,则运行下面的表达式,然后退出程序。

例子:

public class Demo {
static int i = 1;
public static void main(String[] args) {
assert i==2; //由于是一个表达式所以等号为==
System.out.println("如果断言正常,我就被打印");
}
}

运行结果:

但是断言功能默认是关闭,如果我们需要使用这个功能,需要手动打开它。

输入-ea是开启断言,输入-da是关闭断言。

Java中使用断言的更多相关文章

  1. Java中assert(断言)的使用

    Java中assert(断言)的使用 1.Eclipse中默认assert(断言)是关闭,开启方式如下: 简单来说:就是设置一下jvm的参数,参数是-enableassertions或者-ea(推荐) ...

  2. java中的断言

     断言:也就是所谓的assertion,是jdk1.4后加入的新功能. 它主要使用在代码开发和测试时期,用于对某些关键数据的判断,如果这个关键数据不是你程序所预期的数据,程序就提出警告或退出. 当软件 ...

  3. Java中的断言assert

    Java陷阱之assert关键字   一.概述   在C和C++语言中都有assert关键,表示断言. 在Java中,同样也有assert关键字,表示断言,用法和含义都差不多.   二.语法   在J ...

  4. Java中的断言 Assert

    今天正好遇到了,就记一下 一.作用: 用与编写单元测试 二.assert 关键字 assert 理论上和 if类似, 但是assert 仅仅用于测试, 不能用于业务 如果发现断言无效, 则可能时ide ...

  5. 理解和正确使用Java中的断言(assert)

    一.语法形式:    Java2在1.4中新增了一个关键字:assert.在程序开发过程中使用它创建一个断言(assertion),它的语法形式有如下所示的两种形式:1.assert conditio ...

  6. Java中的断言assert的用法

    Java陷阱之assert关键字 一.概述 在C和C++语言中都有assert关键,表示断言. 在Java中,同样也有assert关键字,表示断言,用法和含义都差不多. 二.语法 在Java中,ass ...

  7. java 中的断言assert的使用

    一.assertion的意义和用法 J2SE 1.4在语言上提供了一个新特性,就是assertion功能,它是该版本在Java语言方面最大的革新. 从理论上来说,通过 assertion方式可以证明程 ...

  8. 关于java中assert(断言)的使用讲解

    说明:写的不是很全面,有任何问题请留言,多交流,谢谢! 1.eclipse.myeclipse开启assert(断言),默认是关闭,如下: 说白了就是设置一下jvm的参数,参数是-ea或者-enabl ...

  9. Java中调试与测试常用方法

    一.断言 1.概述 根据之前的条件来对后续的结果进行预判. 2.在Java中,断言默认是不开启的,需要手动进行开启,只需添加参数-ea(enable assert的意思) 开启步骤: 选中项目路径,鼠 ...

随机推荐

  1. SpringCloud教程第1篇:Eureka(F版本)

    一.创建服务注册中心(Eureka组件) 1.1 首先创建一个maven主工程. 1.创建maven项目 是一个主Maven工程,spring Boot版本为2.0.3.RELEASE,Spring ...

  2. 06.DBUnit实际运用

    在上面的代码中 package com.fjnu.service; import java.io.FileWriter; import java.sql.SQLException; import st ...

  3. npm -v 报错:Error: EPERM: operation not permitted, mkdir 'C:\soft\nodejs'

    npm -v 报错:Error: EPERM: operation not permitted, mkdir 'C:\soft\nodejs' 起因:原本安装node在C盘soft文件夹下,按node ...

  4. Excel帮助类

    Excel帮助类操作 public class ExcelHelper { /// <summary> /// 将xls导入List /// </summary> /// &l ...

  5. MongoDB入门三

    MongoDB字段问题  增删查改操作 删除一列操作db.RiderReaTimePositon.update({},{$unset:{'CreateTime':''}},false,true)db. ...

  6. SQL注入基础原理

    Web安全: 三层架构(3-tier architecture) 通常意义上就是将整个业务应用划分为: 界面层(User Interface layer) 业务逻辑层(Business Logic L ...

  7. js的几个小问题

    1.存一个有效期为7天的cookie,key = nickname, val = Ace 代码: function setCookie(key,val,expires){ let now=new Da ...

  8. 问题记录--jekyll serve 启动的时候如何指定80端口

    jekyll serve --host 0.0.0.0 --port 80 启动失败

  9. CentOS7下普通账号通过systemctl管理服务需要输入root密码问题

    问题描述: 使用普通账号test通过systemctl启动系统服务提示需要输入root密码: 解决方案: 根据上面提示得知权限由polkit进行管理,对应的是org.freedesktop.syste ...

  10. linux磁盘容量不足的处理方案

    在虚机上安装memcached时,突然发现磁盘空间不足. df -h 发现,磁盘一共12G,原来是新申请的虚机,磁盘分区没有挂载上. fdisk -l 查看磁盘,发现有 /dev/vdb1 /dev/ ...