前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Assert断言

Assert断言

作者头像
关忆北.
发布2021-12-07 16:26:47
9510
发布2021-12-07 16:26:47
举报
文章被收录于专栏:关忆北.

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提供的断言语法:

代码语言:javascript
复制
assert expression;
assert expression : errorMessage;

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

代码语言:javascript
复制
public class AssertTest {
    public static void main(String[] args) {
    
        int value = 15;
        assert value >= 20;
        System.out.println("value is " + value);
    }
}

在开启断言运行demo:

代码语言:javascript
复制
Exception in thread "main" java.lang.AssertionError
	at AssertTest.main(AssertTest.java:11)

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

代码语言:javascript
复制
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的断言

代码语言:javascript
复制
    @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();
    }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/11/16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Assert断言关键字:
    • 一、断言的作用
      • 二、断言(assert)的语法
        • 三、断言配合业务枚举使用
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档