瑞吉外卖实战学习--6、通过try和catch进行异常处理

news/2024/12/23 6:58:59/

try和catch进行异常处理

  • 效果图
  • 前言
  • 1、公共拦截器进行异常处理
    • 1.1、创建公共报错处理的方法
    • 1.2、@ControllerAdvice中设置要拦截的类
    • 1.3、@ExceptionHandler中写处理的异常类
  • 2、完善错误拦截器
    • 2.1、效果

效果图

在这里插入图片描述

前言

当用户名重复数据库会报错,此时就需要捕获异常操作

1、公共拦截器进行异常处理

在这里插入图片描述

1.1、创建公共报错处理的方法

在这里插入图片描述

1.2、@ControllerAdvice中设置要拦截的类

在这里插入图片描述

1.3、@ExceptionHandler中写处理的异常类

在这里插入图片描述

package com.example.ruiji_demo.common;import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;import java.sql.SQLIntegrityConstraintViolationException;/*** @author jitwxs* @date 2024年03月30日 22:24*/
@ControllerAdvice(annotations = {RestController.class, Controller.class})
@ResponseBody
@Slf4j
public class GlobalExceptionHandler {@ExceptionHandler(SQLIntegrityConstraintViolationException.class)public R<String> exceptionHandler(SQLIntegrityConstraintViolationException ex){log.error(ex.getMessage());return R.error("添加失败了");}
}

在这里插入图片描述

2、完善错误拦截器

获取到是否是含有Duplicate entry的错误,如果是就提取出来名称,然后添加到报错信息
在这里插入图片描述

package com.example.ruiji_demo.common;import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;import java.sql.SQLIntegrityConstraintViolationException;/*** @author jitwxs* @date 2024年03月30日 22:24*/
@ControllerAdvice(annotations = {RestController.class, Controller.class})
@ResponseBody
@Slf4j
public class GlobalExceptionHandler {/*** 异常处理方法* @param ex* @return*/@ExceptionHandler(SQLIntegrityConstraintViolationException.class)public R<String> exceptionHandler(SQLIntegrityConstraintViolationException ex){log.error(ex.getMessage());
//        获取到是否是含有Duplicate entry的错误,如果是就提取出来名称,然后添加到报错信息if(ex.getMessage().contains("Duplicate entry")){String[] split = ex.getMessage().split(" ");String msg = split[2] + "已存在";return R.error(msg);}return R.error("添加失败");}
}

2.1、效果

在这里插入图片描述


http://www.ppmy.cn/news/1404931.html

相关文章

Linux部署Kafka2.8.1

安装Jdk 首先确保你的机器上安装了Jdk&#xff0c;Kafka需要Java运行环境&#xff0c;低版本的Kafka还需要Zookeeper&#xff0c;我此次要安装的Kafka版本为2.8.1&#xff0c;已经内置了一个Zookeeper环境&#xff0c;所以我们可以不部署Zookeeper直接使用。 1、解压Jdk包 t…

python实现UDP服务器

import socket # 创建UDP socket udp_server_socket socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 绑定地址和端口 server_address (localhost, 12000) udp_server_socket.bind(server_address) # 服务器循环 while True: # 接收客户端消息 message, c…

【蓝桥杯第十三届省赛B组】(部分详解)

九进制转十进制 #include <iostream> #include<math.h> using namespace std; int main() {cout << 2*pow(9,3)0*pow(9,2)2*pow(9,1)2*pow(9,0) << endl;return 0; }顺子日期 #include <iostream> using namespace std; int main() {// 请在此…

高效率二极管选型参数,结构原理,工艺与注意问题总结

🏡《总目录》 目录 1,概述2,工作原理2.1,正向偏置2.2,反向偏置3,结构特点3.1,材料选择3.2,结构设计3.3,掺杂工艺4,工艺流程4.1,材料准备4.2,设备准备4.3,环境准备4.4

Android 对内置应用默认授予所有权限,避免所有权限弹窗

路径一&#xff1a; /vendor/mediatek/proprietary/packages/modules/Permission/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/ReviewPermissionsFragment.java ReviewPermissionViewModelFactory factory new ReviewPermissionViewM…

怎么修改图片的创建日期和修改日期?

怎么修改图片的创建日期和修改日期&#xff1f;大家都应该知道&#xff0c;电脑上的任何一种文件都有创建日期和修改日期&#xff0c;不管word、excel、ppt还是图片&#xff0c;这两个时间属性是都必须具备的。在数字时代&#xff0c;我们经常使用照片来记录珍贵的时刻和重要的…

蓝桥杯刷题day13——自助餐【算法赛】

一、问题描述 食堂最近推出了自助取餐功能&#xff0c;可以通过盘子的形状自动计算费用。你参与到自助计算价格的项目工作中。视觉组的同学已经帮你通过图像识别把盘子图片转换为了字符串&#xff0c;你只需要计算具体的价格即可。 餐盘的费用如下表所示: 你将会得到n 个字符…

ISP代理和数据中心IP的不同

ISP代理和数据中心IP在网络应用中都扮演着重要的角色 【定义】 ISP代理是由互联网服务提供商&#xff08;ISP&#xff09;提供的代理服务器。ISP代理的IP地址由ISP分配&#xff0c;这使得用户可以获得一个合法且唯一的IP地址&#xff0c;该地址隐藏了用户的实际位置。而数据中…