springboot全局处理sql异常

news/2024/5/14 2:59:21

springboot全局异常处理,不会去拦截sql异常,导致错误返回到前端,,将sql中的字段暴露出来,很危险,,

因为ExceptionHandler 只认我们注入类的名称,,而SQLException不在里面,,
在RuntimeException中拦截:

  @ExceptionHandler(RuntimeException.class)public AjaxResult handleRuntimeException(RuntimeException e, HttpServletRequest request){String requestURI = request.getRequestURI();log.error("请求地址'{}',发生未知异常.", requestURI, e);Throwable rootCause = e.getCause();if (rootCause instanceof SQLIntegrityConstraintViolationException){return AjaxResult.error("数据不唯一");}if (rootCause.toString().startsWith("org.mariadb.jdbc")){return AjaxResult.error("数据库错误");}return AjaxResult.error(e.getMessage());}

引用:https://download.csdn.net/blog/column/12507643/134327833


http://www.mrgr.cn/p/21457685

相关文章

IntelliJ IDEA 如何启用 JDK 预览特性

IntelliJ IDEA 也可以启用 JDK 的预览特性。 针对项目,选择项目结构。 配置是在语言结构上。 单击语言结构上的 SDK 默认,往下拉,就可以看到针对新版本的选项。 同时还可以看到那些版本是支持新特性预览的,那些版本是不支持新特…

ETL中双流合并和多流合并的区别

一、ETL工具 ETLCloud数据集成平台集实时数据集成和离线数据集成以及API发布为一体的数据集成平台。与其他开源数据集成工具相比,采用轻量化架构、具有更快的部署速度、更快的数据传输速度、更低的运维成本,同时支持多租户的团队协作能力,能够满足企业各种复杂的数据处理需求…

Ubuntu终端自动补全

文章目录 前言配置安装zsh安装 oh-my-zsh安装自动补全插件zsh-autosuggestions 参考 前言 Oh My Zsh 是一个针对命令行 shell 的开源框架,主要用于增强和美化命令行环境。它建立在 Zsh(一种强大的 shell 替代品)之上,提供了丰富的…

为什么打印对象,点开查看某属性有值,但是直接打印无值

1.现象某些刚学习一段时间前端,或者学习一段时间后的一些人不知道为什么打印对象,点开查看某属性有值,但是直接打印无值. 比较常见的一个开发现象就是发现自己直接打印对象有值,但是进行页面跳转或者其他业务请求之类的时候发现参数拿不到2.原因直接打开控制台的时候里面没有值…

3D MINS 多模态影像导航系统

3D MINS多模态影像导航系统(Multimodal Image Navigation System)是SunyaTech研发的建立在DICOM(Digital Imaging and Communications in Medicine)图像基础之上的多模态影像导航系统,集二维影像PACS管理、三维影像层级…

U盘、硬盘泄密无处不在,如何锁紧企业数据大门?

在当今信息化的时代,数据泄露的问题尤为严重。特别是U盘、硬盘等移动储存设备,更是数据泄露的重灾区。那么,如何锁紧企业的数据大门呢?我们需要认识到信息安全就是一种生产要素,没有安全就没有生产。企业数据的安全性直接关系到企业的稳定和发展。也就是说,没有安全事故并…

qt5-入门-自定义委托-可编辑的TableModel与信号接收

参考: C GUI Programming with Qt 4, Second Edition 本地环境: win10专业版,64位,Qt5.12 上一篇: qt5-入门-自定义委托-简单例子_qt 委托-CSDN博客 https://blog.csdn.net/pxy7896/article/details/137234839 本篇重…

树莓派怎么设置固定IP地址

参考 https://blog.csdn.net/ByteBox/article/details/134752264 修改配置文件 /etc/dhcpcd.conf修改以下配置,其余配置保存不变 本次修改的是无线网卡wlan0 interface wlan0 static ip_address=192.168.4.212/24 static routers=192.168.4.1 static domain_name_servers=192.1…

蓝桥杯——分巧克力

思路非常简单,就是一个二分法。 注意一下l和r的取值,就可以了。 // 如何进行切分巧克力:横纵除法。例如:一块6*5的,欲切为3*3的小块,横:6/2 3;纵:5/31.所以可以切成3*…

为什么vue打印的对象在浏览器中显示...

1.现象当在vue中打印对象的时候会发现有一些属性或者全部属性都是显示的...,点击展开后才能看到真正的值是什么.2.原因因为在vue中对象都是用了代理重写了get,由于get重写也就导致了浏览器不能直接获取到具体的值,因此才会在打印的时候为...,手动点击展开才显示具体的值3.想看具…

Angular cli 组件和服务的创建, 父传子,子传父,服务的简单使用

1:Angular cli 创建组件componentng g component components\rightng g c wave 简写需要定位到根路径下即可创建组件Could not find an NgModule. Use the skip-import option to skip importing in NgModule. PS C:\myAngulrDemos\20240428demo\mydemo01\src> cd .. PS C…

R使用LASSO回归预测股票收益

原文链接:http://tecdat.cn/?p=4228 原文出处:拓端数据部落公众号使用LASSO预测收益 1.示例 只要有金融经济学家,金融经济学家一直在寻找能够预测股票收益的变量。对于最近的一些例子,想想Jegadeesh和Titman(1993),它表明股票的当前收益是由前几个月的股票收益预测的,…

SpringMVC深解--一起学习吧之架构

SpringMVC的工作原理主要基于请求驱动,它采用了前端控制器模式来进行设计。以下是SpringMVC工作原理的详细解释: 请求接收与分发: 当用户发送一个请求到Web服务器时,这个请求首先会被SpringMVC的前端控制器(Dispatche…

C++面经(简洁版)

1. 谈谈C和C的认识 C在C的基础上添加类,C是一种结构化语言,它的重点在于数据结构和算法。C语言的设计首要考虑的是如何通过一个过程,对输入进行运算处理得到输出,而对C,首先要考虑的是如何构造一个对象,通…

PostgreSQL从小白到高手教程 - 第50讲:PG分区表管理

PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUG PG技术大讲堂。第50讲:PG分区表管理内容1:数据分区 内容2:表继承 内容…

组件的使用、父子通信、ref属性(父子通信)、动态组件、 keep-alive、插槽

【组件的使用】1 <!DOCTYPE html>2 <html lang="en">3 <head>4 <meta charset="UTF-8">5 <title>Title</title>6 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></scr…

openEuler操作系统安装OpenCV 3.4.10

安装依赖 JDK要求 需求java 17 系统要求 centos 8centos 7需要自行升级glibc到某个版本,哪一个忘记了,风险很大,不要尝试! 基础依赖 # 缺什么就下什么,其中cmake是最重要的 yum -y install epel-release yum install gcc gcc-c++ yum install cmake yum install epel-r…

2月起始的周数

问题:财政年度从2月起始,如何计算周数(假设每周从周一开始) 函数公式解决:=WEEKNUM(A2-31,2)

将游戏界面与注册/登录界面连接到一起

一、 导包 在注册页面中导入一个import subprocess包 二、 使用代码将其连接到一起 在循环中加入下面这一行代码&#xff0c;用来实现效果 subprocess.run(["python", "game代码.py"]

修改Ubuntu22.04系统图标

在Ubuntu 22.04中更改开机时显示的Ubuntu图标需要修改的设置。 主要思路是用自己图片替换系统图片&#xff0c;保持系统图片同名&#xff0c;同格式。 以下是一般的步骤&#xff1a; 修改启动界面的logo&#xff1a; sudo cp 新logo.png /usr/share/plymouth/themes/spinn…