ssm:商业异常处理流程

第一步 定义全局R类制定标准

代码定义了一个通用的返回类 R<T>,用于封装API请求的结果,包括状态码、消息和数据。该类使用了Lombok的@Data注解来减少样板代码(如getter、setter方法等)的编写。以下是代码的一些解释和建议:                     

  • 泛型类 R:这个类是一个泛型类,能够处理任意类型的数据返回。

  • 属性

    • code: 状态码,用来表示操作结果的状态。
    • msg: 消息,通常用来描述操作的结果或错误信息。
    • data: 泛型类型,实际返回的数据内容。
  • 静态方法

    • OK(T data) 和 OK():用于创建成功的响应对象,其中包含一个状态码200和消息"成功"。前者接受一个参数作为数据部分,后者不携带数据。
    • error(Integer code, String msg):用于创建错误的响应对象,允许调用者指定状态码和错误消息。

第二步 创建exception 自定义BizExceptionBizExceptionEUnm枚举类型

  • 枚举类型BizExceptionEnum 是一个枚举类,每个枚举常量代表一种特定类型的业务异常,并且每一个都关联有一个错误码和一条消息。

  • 构造函数:私有的构造函数用于初始化每个枚举实例的错误码和消息。

  • Lombok @Getter 注解:通过在字段上添加 @Getter 注解,Lombok 自动生成相应的 getter 方法,简化了代码。

  • 属性

    • code: 异常状态码。
    • msg: 异常信息。
  • 构造函数

    • 第一个构造函数接受一个整型的状态码和一条消息字符串,适用于需要直接指定这些值的情况。
    • 第二个构造函数接受一个 BizExceptionEnum 枚举实例,通过该枚举实例初始化状态码和消息,这种方式提高了代码的可读性和复用性。

第三步 创造全局异常处理器的类

  • @ControllerAdvice:这个注解用于定义全局异常处理器类,它能够将异常处理逻辑集中在一个地方,而不是分散在各个控制器中。

  • @ResponseBody:该注解表明返回的对象应该直接写入HTTP响应体中(通常作为JSON格式),而不是被视为一个视图名称。

  • error(Exception e):这是一个通用的异常处理方法,捕获所有类型的异常,并返回一个包含错误信息的对象。

  • handleBizException(BizException e):这是专门用来处理自定义业务异常 BizException 的方法。它从异常对象中提取错误码和消息,并返回一个详细的错误响应。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Inficon IC5 沉积控制器 IC/5 型号

Inficon IC5 沉积控制器 IC/5 型号

农业建设项目管理系统评测:8款推荐工具优缺点分析

本文主要介绍了以下8款农业建设项目管理系统&#xff1a;1.PingCode&#xff1b; 2. Worktile &#xff1b;3. 建米农业工程项目管理系统&#xff1b;4. 开创云数字农业管理平台&#xff1b; 5. Trimble Ag Software&#xff1b;6.Conservis&#xff1b; 7. Agworld &#xff1…

大视频背景暗黑风格的wordpress企业主题免费下载

整体风格是黑色的&#xff0c;首页首屏大视频背景&#xff0c;动态效果非常好。向下滚动时&#xff0c;滚动的特效也不错。 原文 https://www.bixugao.com/wp/26.html

西门子S7-1200 PLC远程调试技术方案(巨控GRM532模块)

三步快速实现远程调试 硬件部署 准备西门子S7-1200 PLC、巨控GRM552YW-C模块及编程电脑。GRM552YW-C通过网口与PLC连接&#xff0c;支持4G/5G/Wi-Fi/有线网络接入&#xff0c;无需复杂布线。 软件配置 安装GVCOM3配置软件&#xff0c;注册模块&#xff08;输入唯一序列号与密…

系统思考:客户价值

“真正的市场竞争&#xff0c;不是比谁更能制造产品&#xff0c;而是比谁更能创造价值。” ——杰夫贝索斯 在组织辅导中&#xff0c;我经常问团队一个问题&#xff1a;“我们的客户是谁&#xff1f;”大多数人的第一反应是——“支付费用的就是客户。” 这在过去的市场扩张阶…

Centos7网卡 Failed to start LSB: Bring up/down networking

Centos7网卡 Failed to start LSB: Bring up/down networking 检查虚拟网络编辑器配置无误编辑ifcfg-ens33文件 Centos7重启网卡服务失败错误如下 给Centos7系统使用NAT模式配置静态IP地址&#xff1a; 检查虚拟网络编辑器配置无误 编辑ifcfg-ens33文件 vim /etc/sysconfig/ne…

第一个vue项目

项目目录 启动vue项目 npm run serve 1.vue.config.js文件 (CLI通过vue-cli-serve启动项目&#xff0c;解析配置配置文件vue-condig-js&#xff09; // vue.config.js //引入path板块&#xff0c;这是Node.js的一个内置模块&#xff0c;用于处理文件路径&#xff0c;这里引用…

【Qt】QWidget属性介绍

&#x1f3e0;个人主页&#xff1a;Yui_ &#x1f351;操作环境&#xff1a;Qt Creator &#x1f680;所属专栏&#xff1a;Qt 文章目录 前言1. enabled属性2.geometry属性2.1 改变控件位置2.2 女神表白程序2.3 知识补充——window frame 3. windowsTitle属性4. windowIcon属性…

嵌入式八股ARM篇

前言 ARM篇主要介绍一下寄存器和中断机制,至于汇编这一块…还请大家感兴趣自行学习 1.寄存器 R0 - R3 R4 - R11 寄存器 R0 - R3一般用作函数传参 R4 - R11用来保存程序运算的中间结果或函数的局部变量 在函数调用过程中 注意在发生异常的时候 cortex-M0架构会自动将R0-R3压入…

nerfstudio以及相关使用记录(长期更新)

NeRFStudio 是NeRF/3DGS研究和开发的集成平台。 提供了一个用户友好的界面和一系列工具&#xff0c;帮助研究人员和开发者更高效地构建、训练和评估 NeRF 模型。以前使用的时候用完就丢一边了&#xff0c;没有注意记录&#xff0c;现在有一个工程调用了nerfstudio&#xff0c;部…

《论分布式系统架构设计及其应用》架构师论文

【摘要】 2022年3月&#xff0c;我参与了某金融科技公司“智能风控云平台”项目的研发工作&#xff0c;担任系统架构师职务&#xff0c;负责分布式系统架构设计与核心技术选型。该平台旨在为银行、保险等金融机构提供实时风险评估、反欺诈及数据服务&#xff0c;需支撑每秒十万…

黄金还能再涨吗?

写在前面&#xff1a;【财富自由计算助手】已上线&#xff0c;快算算你的财富自由要多少 逻辑比事实更真实。 最近&#xff0c;黄金涨得妈都不认。 连菜市场大妈都在讨论&#xff0c;要不要囤点黄金。 2022 年初&#xff0c;俄乌冲突升级为全面战争以来&#xff0c;黄金价格…

AutoDev × MCP 双向赋能:AutoDev 即 MCP 服务,MCP 服务即 AutoDev 指令

在 Agentic Coding 这一话题下&#xff0c;工具使用&#xff08;Tool Use/Function calling&#xff09;是一个非常有意思的话题。完成一个软件开发任务&#xff0c;需要使用到大量的工具&#xff0c; 除去在 IDE 及其插件生态本身提供的功能外&#xff0c;还会使用到大量的外部…

DataWhale 大语言模型 - GPT和DeepSeek模型介绍

本课程围绕中国人民大学高瓴人工智能学院赵鑫教授团队出品的《大语言模型》书籍展开&#xff0c;覆盖大语言模型训练与使用的全流程&#xff0c;从预训练到微调与对齐&#xff0c;从使用技术到评测应用&#xff0c;帮助学员全面掌握大语言模型的核心技术。并且&#xff0c;课程…

安装 oepn-webui报错 Cannot connect to host api.openai.com:443 ssl

一、发现问题 安装 open-webui 的报错 api.openai.com 不通&#xff0c;因为 open-webui 最新版和以前的不一样了&#xff0c;所以网上的很多资料都用不了&#xff0c;经过一番摸索&#xff0c;找到解决办法 另外如果发现浏览器打开之后白屏&#xff0c;则是因为后台正在配置…

【6】树状数组学习笔记

前言 树状数组是我学的第一个高级数据结构&#xff0c;属于 log ⁡ \log log 级数据结构。 其实现在一般不会单独考察数据结构&#xff0c;主要是其在其他算法&#xff08;如贪心&#xff0c;DP&#xff09;中起到优化作用。 长文警告&#xff1a;本文一共 995 995 995 行…

研发团队协作软件推荐:18款工具对比

本文将深入对比18款主流研发团队协作软件&#xff1a;PingCode、 Worktile、钉钉、飞书、企业微信、Teambition、蓝湖、石墨文档、明道等。 在当今信息化时代&#xff0c;研发团队协作软件已经成为企业提高工作效率、改善团队沟通与管理的重要工具。借助这些软件&#xff0c;企…

Java8的新特性

1.Lambda表达式和函数式接口 Lambda的基础&#xff1a;函数式接口 Java 8与之前版本的区别&#xff1a; Java 7及之前&#xff1a;接口中只能包含抽象方法&#xff0c;无法通过函数式接口简洁地表示Lambda表达式。Java 8&#xff1a;通过FunctionalInterface注解&#xff0c;明…

数据库管理-第302期 国产类RAC架构数据库网络连接方式(20250314)

数据库管理302期 2025-03-14 数据库管理-第302期 国产类RAC架构数据库网络连接方式&#xff08;20250314&#xff09;1 Oracle RAC2 DMDSC3 YAC4 KES RAC总结 数据库管理-第302期 国产类RAC架构数据库网络连接方式&#xff08;20250314&#xff09; 作者&#xff1a;胖头鱼的鱼…

Spring框架详解(IOC容器-上)

IOC&#xff08; Inversion of Control&#xff0c;控制反转&#xff09;和DI&#xff08;dependency injection&#xff09;是Spring框架的核心特性&#xff0c;也是Spring框架的基础。 Spring框架作为一个IOC容器&#xff0c;负责加载、创建和管理Spring Bean。 接下来介绍…