全局异常和自定义异常处理

全局异常GlobalException.java,basePackages:controller层所在的包全路径

import com.guet.score_management_system.common.domian.AjaxResult;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;/*** 全局异常处理*/
@ControllerAdvice(basePackages = "com.demo.controller")
public class GlobalException {/**统一处理异常@ExceptionHandler,用于Exception*//*  @ExceptionHandler(Exception.class)@ResponseBodypublic AjaxResult error(HttpServletRequest request,Exception e){return AjaxResult.error("系统异常");}*//**ExceptionHandler用来捕获ServiceException异常*/@ExceptionHandler(ServiceException.class)/**将AjaxResult转为JSON对象*/@ResponseBody/**需要自定义一个类,用来继承RuntimeException*/public AjaxResult serviceException(ServiceException e){return AjaxResult.error("500",e.getMessage());}
}

自定义异常ServiceException.java

public class ServiceException extends RuntimeException {/*** 异常信息*/private String message;public ServiceException(String message) {this.message = message;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}
}

使用,任意controller类

    public User login(User user) {/** 判断输入的用户名是否为空 */if (user.getUsername() == null || "".equals(user.getUsername())){throw new ServiceException("用户名不能为空");}/** 判断输入的密码是否为空 */if (user.getPassword() == null || "".equals(user.getPassword())){throw new ServiceException("密码不能为空");}/** 判断获取输入的用户名和密码与数据库中的是否对应 */User dbUser = userMapper.selectUsernameAndPassword(user.getUsername(), user.getPassword());if (dbUser == null){throw new ServiceException("用户名或密码错误");}return dbUser;}

前端

login() {request.post('/login', this.form).then(res => {if(res.code === '200'){this.$message.success('登录成功')// 跳转到首页this.$router.push('/')}else{this.$message.error(res.message)}})
},

效果:

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

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

相关文章

关于协同过滤算法在物联网的应用-基于用户行为数据和物联网设备数据,以此提供个性化的智能家居控制推荐服务

关于协同过滤算法在物联网领域的应用的一个案例是基于用户行为数据和物联网设备数据,为用户提供个性化的智能家居控制推荐服务。 具体实现如下: 数据收集:收集用户对智能家居设备的使用行为数据,包括设备的打开、关闭、调节等操…

zabbix 批量添加主机

zabbix 批量添加主机 1.1::通过本教程起到抛砖引玉效果,希望各位朋友受益良多。 1.2::如您有任何问题请联系作者,QQ1284524409。 1.3::以下提供的任何软件仅供学习交流使用。 1.4::**项目地址** jihulib项目地址 #!/usr/bin/python # coding:utf-8 …

电脑怎么设置代理IP上网?如何隐藏自己电脑的真实IP?

在现代互联网中,代理IP已成为许多用户保护隐私和上网安全的重要手段。通过设置代理IP,用户可以隐藏自己的真实IP地址,提高上网的安全性,同时保护个人信息不被泄露。本文将详细介绍如何设置代理IP上网以及如何隐藏电脑的真实IP地址…

Vue Tinymce富文本组件添加自定义字体项

实现效果如下: Tinymce 组件进行字体设置 设置完后,就可以使用自定义的字体了。

Spring Boot整合 EasyExcel 实现复杂 Excel 表格的导入与导出功能

文章目录 1. 简介2. 引入依赖3. 导入功能实现3.1 创建实体类3.2 编写导入 Controller3.3 编写导入页面 4. 导出功能实现4.1 编写导出 Controller4.2 编写导出页面 5. 启动应用 🎈个人主页:程序员 小侯 🎐CSDN新晋作者 🎉欢迎 &…

spring.factories

spring.factories 在Java中,Spring Framework是一个非常流行的开源框架,它提供了很多的功能和工具,使得开发者可以更加方便地进行Web开发、数据访问、消息传递等操作。在Spring Framework中,有一个非常重要的配置文件&#xff0c…

你好2024!

大家好,我是小悟 2024年1月1日,新年的第一天,阳光明媚,空气中弥漫着希望和新的开始的气息。在这个特别的日子里,大家纷纷走出家门,迎接新年的到来。 街道上,熙熙攘攘的人群中,有孩…

C++/Qt版酒店客房管理系统代码详解——报表统计模块

5.报表统计模块:用于生成各种统计报表,如入住率报表、收入报表等, 代码中,创建了一个名为`ReportWidget`的自定义QWidget类,用于显示报表统计模块的界面。在构造函数中,我们创建了标题标签、类型下拉框、表格和生成报表按钮,并使用垂直布局将它们添加到主窗口中。 在`…

Android中线程间的通信-Handler

Handler机制在Android中主要用于线程间的通信,特别是处理从子线程向主线程(UI线程)传递消息和更新界面。 Handler中的四个关键对象及其作用: Message: Message 是在线程间传递的数据载体,它包含了需要处理…

【动态管理日志】Spring Boot 实现 热插拔 AOP,非常实用!

现在有这么一个需求:就是我们日志的开与关是交给使用人员来控制的,而不是由我们开发人员固定写死的。大家都知道可以用aop来实现日志管理,但是如何动态的来实现日志管理呢?aop源码中的实现逻辑中有这么一个步骤,就是会…

将学习自动化测试时的医药管理信息系统项目用idea运行

将学习自动化测试时的医药管理信息系统项目用idea运行 背景 学习自动化测试的时候老师的运行方式是把医药管理信息系统项目打包成war包后再放到tomcat的webapp中去运行,于是我想着用idea运行会方便点,现在记录下步骤方便以后查找最开始没有查阅资料&am…

二、Mysql数据操作[数据查询、数据更改、常见词义]

一、增删改查 1.增 格式:INSERT INTO TABLES(value1,value2) VALUES (1,2),(12,34); INSERT INTO test1(id, p_name, p_data) VALUES (1,1,1), (2,2,2);2.删 格式:DELETE FROM TABLES WHERE condition DELETE FROM test1 WHERE id1;3.改 格式&…

蓝牙物联网灯控设计方案

蓝牙技术是当前应用最广泛的无线通信技术之一,工作在全球通用的 2.4GHZ 的ISM 频段。蓝牙的工作距离约为 100 米,具有一定的穿透性,没有方向限制。具有低成本、抗干扰能力强、传输质量高、低功耗等特点。蓝牙技术组网比较简单,无需…

antd5 Layout中Header与Sider背景色注入

前言 截止本文antd5.12.5, 通过ConfigProvider的方式统一修改主题色, 会出现Sider与Header无法修改背景色的问题。 这种行为与官方提供的theme-editor中展示的样式并不一致。 https://ant-design.antgroup.com/theme-editor-cn 在theme-editor中&#…

Dubbo 的服务请求失败怎么处理?

文章目录 Dubbo 的服务请求失败怎么处理? Dubbo 的服务请求失败怎么处理? Dubbo 是一个 RPC 框架,它为我们的应用提供了远程通信能力的封装,同时, Dubbo 在 RPC 通信的基础上,逐步在向一个生态在演进&…

throw 和 throws 的区别

Java 中的异常处理除了包括捕获异常和处理异常之外,还包括声明异常和拋出异常,可以通过 throws 关键字在方法上声明该方法要拋出的异常,或者在方法内部通过 throw 拋出异常对象。 throws 关键字和 throw 关键字在使用上的几点区别如下&#…

【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(3)-训练yolov5模型(本地)

训练yolov5模型(本地) 训练文件 train.py训练如下图 一些参数的设置weights:对于weight参数,可以往Default参数中填入的参数有 cfg:(缩写)cfg参数可以选择的网络模型 data对于data hyp 超参数epochs 训练多…

绍兴市越城区科研企业可以申请的科研基金和补助主要包括:

绍兴市越城区科研企业可以申请的科研基金和补助主要包括: 国家自然科学基金:主要支持基础科学研究,是科研项目的主要资金来源之一。浙江省科技厅科技计划项目:浙江省科技厅每年会发布科技计划项目指南,越城区内的企业…

托管在亚马逊云科技的向量数据库MyScale如何借助AWS基础设施构建稳定高效的云数据库

MyScale是一款完全托管于亚马逊云科技,支持SQL的高效向量数据库。MyScale的优势在于,它在提供与专用向量数据库相匹敌甚至优于的性能的同时,还支持完整的SQL语法。以下内容,将阐述MyScale是如何借助亚马逊云科技的基础设施&#x…

介绍Docker的基本概念和优势,以及在应用程序开发中的实际应用

Docker是一种开源的容器化平台,可以将软件包裹在一个独立的容器中,并提供一种轻量级、可移植和自包含的环境来运行应用程序。Docker的基本概念包括以下几个方面: 容器:容器是独立运行的软件包,包含应用程序和它所依赖的…