java优雅写法01 -业务判断并断言-Assert工具类

断言的理解: 断言他满足条件不抛异常; 不满足断言时产生异常;

业务需求:判断某个查询对象为空,直接返回错误信息

常见写法:

if (ObjectUtil.isNull(object)){
return XXXX
}

Assert 写法
这句代码的意思是 如果对象为空就提示并返回异常消息,异常消息由统一异常捕捉并返回

 Assert.isFalse(ObjectUtil.isNull(object), StatusEnum._NOT_EXIST, param);

用的是hutool 的工具包

        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.8.18</version>
        </dependency>

看源码

    public static void isFalse(boolean expression, String errorMsgTemplate, Object... params) throws IllegalArgumentException {
        isFalse(expression, () -> {
            return new IllegalArgumentException(StrUtil.format(errorMsgTemplate, params));
        });
    }

expression: 你需要判断的条件

errorMsgTemplate:提示出去的异常消息模板

params:异常消息里要替换的参数

示例:

   Assert.isFalse(1 == 1,"提示消息{}","我是消息值");

在这里插入图片描述
测试代码

import cn.hutool.core.lang.Assert;

public class StringTest {

  public static void main(String[] args) {

    Assert.isFalse(1 == 1,"提示消息{}","我是消息值");


  }
}

消息模板统一用一个枚举类写在一起

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/225437.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

你了解架构图吗?

技术界的扛把子架构图&#xff0c;你了解吗&#xff1f;今天我们就来聊聊它 什么是架构图呢&#xff1f; 系统架构是概念的体现&#xff0c;是对物/信息的功能与形式元素之间的对应情况所做的分配&#xff0c;是对元素之间的关系以及元素同周边环境之间的关系所做的定义。 架构…

微信小程序访问不了阿里云oss图片链接解决办法

以下都有可能导致访问不了oss图片 1.小程序没有加访问白名单 这个需要前端搞,加上白名单,如果是域名加域名白名单,ip的话加ip白名单 2.阿里云设置域名白名单 打开bucket列表,选择对应的bucket 配置这个白名单,配置好以后,开发者工具可以预览了,手机端预览不了,查看自己的路…

[AbutionGraph开发文档]时序图谱数据库-流式图计算

文档地址&#xff1a;https://thutmose.gitee.io/abution-graph AbutionGraph是一款端到端数据实时分析的图谱数据库&#xff0c;实时(写入实时、决策分析实时、流式图计算实时)&#xff1a; 基于历史数据构建的指标模型实时查询&#xff1b;接入流式数据并实时更新业务指标&a…

[足式机器人]Part2 Dr. CAN学习笔记-数学基础Ch0-6复数Complex Number

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-数学基础Ch0-6复数Complex Number x 2 − 2 x 2 0 ⇒ x 1 i x^2-2x20\Rightarrow x1\pm i x2−2x20⇒x1i 代数表达&#xff1a; z a b i , R e ( z ) a , I m ( z ) b zabi,\mathrm{Re}…

【ARM Coresight 系列 2 文章 -- Trace32 对 APBIC 地址的配置 介绍】

文章目录 APBIC RomtableAPBIC Romtable 图 1 APBIC 网络图 如上图所示,如果想通过Trace32/DS-5 去访问 AP, 这个时候需要怎么做呢?可以看到 APBIC 中ROMTABLE 中 APB-AP 的偏移是0x00200000,所以 APB-AP的基地址为 0x2b000000 + 0x00200000,又从 APB-AP 的romtable 中可以…

基于ssm在线云音乐系统的设计与实现论文

摘 要 随着移动互联网时代的发展&#xff0c;网络的使用越来越普及&#xff0c;用户在获取和存储信息方面也会有激动人心的时刻。音乐也将慢慢融入人们的生活中。影响和改变我们的生活。随着当今各种流行音乐的流行&#xff0c;人们在日常生活中经常会用到的就是在线云音乐系统…

item_get_app_pro-根据ID取商品详情原数据接入参数和返回值说明

参数说明 pinduoduo.item_get_app_pro 公共参数 名称类型必须描述keyString是调用key&#xff08;申请调用免费测试&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[item_search,item_get,item_search_shop等]cache…

python中dir函数和help函数的用法和区别

背景 在python的学习和使用中&#xff0c;常常会涉及到很多第三方库的安装和使用&#xff0c;有时候我们需要借助某些第三方库的文档帮助我们更好更快速的学习第三方库中的函数或者类的使用方法&#xff0c;除了直接阅读说明文档外&#xff0c;借助于python的dir()函数和help()…

Pandas教程09:DataFrame数据可视化绘制折线图、柱状图、散点图、直方图等

pandas.plot() 是 pandas 库中的一个非常方便的函数&#xff0c;用于绘制各种图形&#xff0c;例如线图、柱状图、散点图等。以下是一些示例用法&#xff1a; 1.绘制一个简单的线图&#xff1a; # Author : 小红牛 # 微信公众号&#xff1a;wdPython import pandas as pd impo…

安防芯片步进驱动选型GC系列,低成本,大电流

GLOBALCHIP新一代的安防产品用的芯片&#xff0c;GC3901 GC3909 GC3910 GC3911 GC8548 GC8549 GC6609 GC6610 GC2003 GC2803 GC2804步进驱动 达林顿选型型号&#xff0c;采用12V H 桥驱动器。其中最大持续电流(A)可达2.5A。其中GC6610&#xff0c;GC6609​​​​​​​ 是36V&…

销售技巧培训之如何提升销售沟通技巧

销售技巧培训之如何提升销售沟通技巧 现在市场环境竞争越来越激烈&#xff0c;产品越来越过剩&#xff0c;如何把产品卖出去是摆在企业面前的难题。所以打造一致所向披靡的销售团队&#xff0c;提升销售人员的系统化销售能力就显得非常重要。在销售系统培训模块中&#xff0c;…

聚观早报 |JFrog发布新功能;中科百孚减持龙芯中科股票

【聚观365】12月7日消息 JFrog发布新功能 中科百孚减持龙芯中科股票 商汤集团再回应做空报告 xAI融资新进展 苹果市值再次突破 JFrog发布新功能 流式软件公司、企业软件供应链平台提供商JFrog发布新功能&#xff0c;推出业界首款致力于加速安全软件建构与发布的端到端平台…

Kubernetes(K8s 1.27.x) 快速上手+实践,无废话纯享版(视频笔记)

视频源&#xff1a;1.03-k8s是什么&#xff1f;_哔哩哔哩_bilibili 1 基础知识 1.1 K8s 有用么&#xff1f; K8s有没有用 K8s要不要学&#xff1f; 参考资料: https://www.infoq.com/articles/devops-and-cloud-trends-2022/?itm_sourcearticles_about_InfoQ-trends-report…

thinkphp 多表连接 子查询 group by 分组以最新的一条数据为组

用这个 $subQuery Db::name(wms_orderitems)->distinct(true)->field(kw_id,orders_id,product_id)->order(items_id desc)->buildSql();$list Db::name(wms_orders)->alias(order)->join($subQuery. item,item.orders_idorder.orders_id)->field(order…

【APP抓包】Charles+burp+夜神模拟器联动抓包(带导入系统级0证书)

【APP抓包】Charlesburp夜神模拟器联动抓包&#xff08;带导入系统级0证书&#xff09; 0x00、大傻春你要干什么&#xff1f;0x01、夜神模拟器安装0x02、安装Charles0、版本1、安装2、破解3、安装导入用户证书4、【非必要】安装系统证书 0x03、Charles配置代理1、Charles设置代…

2024 年 20 款最佳免费视频转换器软件 [安全快速有效]

最佳视频转换器软件的功能和定价的回顾和比较。从顶级付费和免费在线视频转换器工具列表中选择&#xff0c;可以快速轻松地转换任何视频&#xff1a; 什么是视频转换器&#xff1f; 视频转换工具允许您将视频从一种格式转换为另一种格式。第一个商业上成功的视频格式是 Quad&…

2023 年工程师不可错过的 AI 主要发展趋势

从对未来的好奇到关键的企业工具&#xff0c;人工智能的发展证明了它对工程师的价值。不久前&#xff0c;Gartner 预测&#xff0c;采用人工智能工程实践来构建和管理自适应人工智能系统的企业&#xff0c;在实施人工智能模型方面的表现将优于同行至少 25%&#xff0c;这为各组…

【7】PyQt布局layout

目录 1. 布局简介 2. 水平布局QHBoxLayout 3. 竖直布局QVBoxLayout 4. 表单布局QFormLayout 5. 布局嵌套 1. 布局简介 一个pyqt窗口中可以有多个控件。所谓布局,指的就是多个控件在窗口中的展示方式 布局方式大致分为: 水平布局竖直布局网格布局表单布局 2. 水平布局Q…

linux进程通信

匿名管道 struct_file的两套资源 管道只能单向通信 特征 1.如果管道没有数据 读端在读 默认会直接阻塞正在读取的进程 2.写端写满 在写会阻塞 等待对方读取 管道设计 命名管道 实现管道通信 #pragma once #include<iostream> #include<string> #include<sys/…

python获取js data.now同款时间戳

import requestsimport time from datetime import datetimecu_t datetime.now() se cu_t.timestamp()*1000 se int(se) print(se)#cur_time time.time()*1000 #seconds int(cur_time) #print(seconds)