SSMP整合案例第七步 前后端业务异常消息统一处理

2024-06-03 14:28

本文主要是介绍SSMP整合案例第七步 前后端业务异常消息统一处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

异常消息处理

我们当前的增删改查基本完成

我们当前的情况是在理想状态下完成的

但是实际开发中我们要抛出异常

业务在进行处理的时候

数据格式就是这样

前端拿到的信息我们应该去处理

前端如何去处理得去斟酌

即使前端出现了异常

我们也要让返回的异常信息让前端成功读取

我们有一个异常处理器

Spring MVC 属于 controller 层的技术

放这里就行

定义全新的数据访问格式

package com.bigdata1421.ssmp.controller.utils;import lombok.Data;@Data
public class Result {private Boolean flag;private Object data;private String msg;public Result(Boolean flag){this.flag=flag;}public Result(Boolean flag,Object data){this.flag=flag;this.data=data;}public Result(Boolean flag,String msg){this.flag=flag;this.msg=msg;}}

也可以这样改写

异常处理类

package com.bigdata1421.ssmp.controller.utils;import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RestControllerAdvice;//作为 spring mvc 的异常处理器
@RestControllerAdvice
public class ProjectExceptionAdvice {@ExceptionHandlerpublic Result doException(Exception ex){//记录日志//通知运维//通知开发ex.printStackTrace();return new Result(  "服务器故障,请稍后重试");}}

Result类

package com.bigdata1421.ssmp.controller.utils;import lombok.Data;@Data
public class Result {private Boolean flag;private Object data;private String msg;public Result(Boolean flag){this.flag=flag;}public Result(Boolean flag,Object data){this.flag=flag;this.data=data;}public Result(String msg){this.flag=false;this.msg=msg;}}

这样就能拿到报错信息

//修改
handleEdit() {//与添加功能绑定的是一个数据模型//绑定的是确定按钮 发起请求axios.put("/users", this.formData).then((res) => {//判断当前操作是否成功if (res.data.flag) {//关闭弹层this.cancel();this.$message.success("人员数据修改成功");}else {this.$message.error(res.data.msg);}}).finally(()=>{//重新加载页面this.getAll();});
},

空体判断

抛出异常给Spring mvc的异常消息处理机制

但是这样我们的代码有的是在前端页面中写的

有的是在服务器的三层架构里写的 这样不好

这样不好

先是异常处理

之后是代码核心逻辑处理

判断flag是否为ture 还是false 添加成功

进阶版

页面消息处理

没有传递消息加载默认消息

传递消息后加载指定消息

我们后端和前端都要进行处理

我们主要是在表现层Controller中进行消息统一处理

目的是国际化

让异常处理的时候交给后端统一处理

这样前端就能简化书写

小结

这篇关于SSMP整合案例第七步 前后端业务异常消息统一处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1027245

相关文章

Java进程异常故障定位及排查过程

《Java进程异常故障定位及排查过程》:本文主要介绍Java进程异常故障定位及排查过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、故障发现与初步判断1. 监控系统告警2. 日志初步分析二、核心排查工具与步骤1. 进程状态检查2. CPU 飙升问题3. 内存

SpringBoot整合liteflow的详细过程

《SpringBoot整合liteflow的详细过程》:本文主要介绍SpringBoot整合liteflow的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋...  liteflow 是什么? 能做什么?总之一句话:能帮你规范写代码逻辑 ,编排并解耦业务逻辑,代码

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提

java向微信服务号发送消息的完整步骤实例

《java向微信服务号发送消息的完整步骤实例》:本文主要介绍java向微信服务号发送消息的相关资料,包括申请测试号获取appID/appsecret、关注公众号获取openID、配置消息模板及代码... 目录步骤1. 申请测试系统2. 公众号账号信息3. 关注测试号二维码4. 消息模板接口5. Java测试

springboot整合TDengine全过程

《springboot整合TDengine全过程》:本文主要介绍springboot整合TDengine全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录环境准备JDBC-JNI方式准备依赖实体类Mapper配置类测试类RESTful方式实体类配置类测试类总结

Python get()函数用法案例详解

《Pythonget()函数用法案例详解》在Python中,get()是字典(dict)类型的内置方法,用于安全地获取字典中指定键对应的值,它的核心作用是避免因访问不存在的键而引发KeyError错... 目录简介基本语法一、用法二、案例:安全访问未知键三、案例:配置参数默认值简介python是一种高级编

MySQL中的索引结构和分类实战案例详解

《MySQL中的索引结构和分类实战案例详解》本文详解MySQL索引结构与分类,涵盖B树、B+树、哈希及全文索引,分析其原理与优劣势,并结合实战案例探讨创建、管理及优化技巧,助力提升查询性能,感兴趣的朋... 目录一、索引概述1.1 索引的定义与作用1.2 索引的基本原理二、索引结构详解2.1 B树索引2.2

从入门到精通MySQL 数据库索引(实战案例)

《从入门到精通MySQL数据库索引(实战案例)》索引是数据库的目录,提升查询速度,主要类型包括BTree、Hash、全文、空间索引,需根据场景选择,建议用于高频查询、关联字段、排序等,避免重复率高或... 目录一、索引是什么?能干嘛?核心作用:二、索引的 4 种主要类型(附通俗例子)1. BTree 索引(

HTML中meta标签的常见使用案例(示例详解)

《HTML中meta标签的常见使用案例(示例详解)》HTMLmeta标签用于提供文档元数据,涵盖字符编码、SEO优化、社交媒体集成、移动设备适配、浏览器控制及安全隐私设置,优化页面显示与搜索引擎索引... 目录html中meta标签的常见使用案例一、基础功能二、搜索引擎优化(seo)三、社交媒体集成四、移动

javax.net.ssl.SSLHandshakeException:异常原因及解决方案

《javax.net.ssl.SSLHandshakeException:异常原因及解决方案》javax.net.ssl.SSLHandshakeException是一个SSL握手异常,通常在建立SS... 目录报错原因在程序中绕过服务器的安全验证注意点最后多说一句报错原因一般出现这种问题是因为目标服务器