Assert断言

Assert断言关键字:

一、断言的作用

Assert关键字是在JDK1.4之后出现,使用Java中的 assert 语句实现,配合布尔表达式一起使用,达到调试程序开发过程中的判断、调试程序的作用。 在执行断言时,它被认为是正确的。 如果失败,JVM会抛出一个名为 AssertionError 的错误。 断言是默认关闭的,如果想使用断言进行判断,需要手动打开断言功能。如果要开启断言检查,则需使用-enableassertions-ea JVM参数来开启;如果要手动忽略断言检查,则可以通过使用 -disableassertions-da JVM参数来忽略断言语句。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rc8XADoC-1605531621425)(C:\Users\Liu-PC\AppData\Roaming\Typora\typora-user-images\image-20201101102424436.png)]

二、断言(assert)的语法

JDK提供的断言语法:

assert expression;
assert expression : errorMessage;

①:assert expression(断言某个变量、表达式为真),expression为Boolean类型,是一个期望值,期望该表达式为true/false

public class AssertTest {
    public static void main(String[] args) {
    
        int value = 15;
        assert value >= 20;
        System.out.println("value is " + value);
    }
}

在开启断言运行demo:

Exception in thread "main" java.lang.AssertionError
	at AssertTest.main(AssertTest.java:11)

②:assert 期望值 : “当不是期望值时报Runtime异常”

public class AssertTest {
    public static void main(String[] args) {
    
        int value = 15;
        assert value >= 20 : "Underweight";
        System.out.println("value is " + value);
    }
}

开启断言调试,发现报异常Underweight

注意:不在IDEA开启断言(项目在linux上以jar的形式运行时),运行这个demo,发现并没有报异常。这是因为Java在执行程序的时候默认是不启动断言检查的,即所有的断言语句都将被忽略。那么,这样大家就会觉得断言这个功能有些鸡肋了,只能是作为一种调试方式,或者在单元测试中使用。

三、断言配合业务枚举使用

如果你觉得使用断言比较鸡肋,那么你可以整合SpringBoot的全局异常注解RestControllerAdvice捕获全局异常,配合**@ExceptionHandler**注解定义异常处理类

可以试用spring的断言或者hutool的断言

    @AutoLog(value = "停用当前类型-编辑")
    @ApiOperation(value = "停用当前类型-编辑", notes = "停用当前类型-编辑,禁用:1,启用:0")
    @PostMapping(value = "/stopOrStartCategory")
    public Result<?> disableType(@RequestBody ProductCategory productCategory) {
        Assert.isTrue(productCategoryService.stopOrStartCategory(productCategory), ResponseEnum.FAILED_TO_DEACTIVATE_CLASSIFICATION.getMsg());
        return Result.OK();
    }
本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!
本文分享自作者个人站点/博客:https://blog.csdn.net/weixin_42313773复制
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • assert断言

    assert是一个宏定义,其作用是如果它的条件返回错误,则终止程序执行,原型定义: 1 #include <assert.h> 2 void assert( i...

    233333
  • 断言宏assert

    Qt君
  • [Python]断言assert的用法

    原文链接:http://blog.csdn.net/humanking7/article/details/45950781

    祥知道
  • java的断言(assert)

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

    xiangzhihong
  • [PHP] assert()断言检测函数

    大灰狼2
  • 断言(assert)的用法

    我一直以为 assert 仅仅是个报错函数,事实上,它居然是个宏,并且作用并非"报错"。

    云深无际
  • [接口测试_B] 03 Pytest断言处理_assert和异常断言

    Pytest的断言方式及应用场景 使用assert语句 断言预期的异常 断言预期的告警 利用上下文信息进行断言 自定义断言方式 使用assert语句进行断言...

    苦叶子
  • Postman之通用断言( Assert )

    前几期很多朋友看了几篇的Postman工具的使用以及一些相关小技巧,都开始迫不及待的要我推送单接口&多接口的实战以及如何使用postman进行接口测试以及断言怎...

    测试小兵
  • 断言assert()与调试帮助

    对expr求值,如果expr为假,则输出信息并终止程序,反之则什么也不做。 用来检查”不会发生”的条件。 assert的行为依赖与NDEBUG的预处理变...

    Enterprise_
  • Python 拓展之断言(assert)

    在昨天的文章中(零基础学习 Python 之处理异常)中学习了处理异常的正确姿势,今天我们继续来学习“错误 & 异常”里比较重要的一个知识点:「assert」。

    编程文青李狗蛋
  • python中的断言 (assert)

    断言(assert)是python中的常用用法之一,主要用于判断一个条件,当条件为假的时候会触发一个AssertionError。即:

    生信编程日常
  • python中assert断言的用法

    >>> assert 1 == 0 Traceback (most recent call last):  File "<stdin>", line 1, i...

    py3study
  • pytest文档11-assert断言

    断言是写自动化测试基本最重要的一步,一个用例没有断言,就失去了自动化测试的意义了。什么是断言呢? 简单来讲就是实际结果和期望结果去对比,符合预期那就测试pass...

    上海-悠悠
  • Python assert 断言函数「建议收藏」

    使用assert断言是学习python一个非常好的习惯,python assert 断言句语格式及用法很简单。在没完善一个程序之前,我们不知道程序在哪里会出错,...

    全栈程序员站长
  • Pytest系列(2) - assert断言详细使用

    https://www.cnblogs.com/poloyy/category/1690628.html

    小菠萝测试笔记
  • Python测试框架pytest(13)assert断言

    1、与 unittest 不同,pytest 使用的是 Python 自带的 assert 关键字来进行断言。

    wangmcn
  • 在Python中正确的使用断言-assert

    最近这两天流感频发,小伙伴们可要注意预防感冒,多锻炼身体。当一个人生病时就会觉得健康是一种莫大的幸福,主要是我中招了,感冒好了之后,我决定继续坚持锻炼身体。今天...

    somenzz
  • spring的断言工具类Assert的基本使用

    Web 应用在接受表单提交的数据后都需要对其进行合法性检查,如果表单数据不合法,请求将被驳回。类似的,当我们在编写类的方法时,也常常需要对方法入参进行合 法性检...

    chenchenchen
  • Python3 assert断言实现原理解析

    砸漏

扫码关注腾讯云开发者

领取腾讯云代金券