SpringMVC——SSM整合——项目异常处理
项目异常处理
项目异常分类
业务异常
- 不规范的用户行为产生的异常
- 规范的用户行为产生的异常
系统异常
- 项目运行过程中可预计且无法避免的异常
其他异常
- 编程人员未预期到的异常
项目异常处理方案
业务异常
- 发送对应的消息,传递给用户,提醒规范操作
系统异常
- 发送固定消息传递给用户,安抚用户
- 发送特定消息给运维人员,提醒维护
- 记录日志
其他异常
- 发送固定消息传递给用户,安抚用户
- 发送特定消息给编程人员,提醒维护(纳入预期范围)
- 记录日志
实现步骤
自定义项目系统异常
package com.cqupt.exception;
public class SystemException extends RuntimeException{
private Integer code;
public SystemException(Integer code, String message) {
super(message);
this.code = code;
}
public SystemException(Integer code, String message, Throwable cause) {
super(message, cause);
this.code = code;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
}
自定义项目业务异常
package com.cqupt.exception;
public class BusinessException extends RuntimeException{
private Integer code;
public BusinessException(Integer code, String message) {
super(message);
this.code = code;
}
public BusinessException(Integer code, String message, Throwable cause) {
super(message, cause);
this.code = code;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
}
自定义异常编码(持续补充)
package com.cqupt.controller;
public class Code {
public static final Integer SAVE_OK = 20011;
public static final Integer DELETE_OK = 20021;
public static final Integer UPDATE_OK = 20031;
public static final Integer SELECT_OK = 20041;
public static final Integer SAVE_ERR = 20010;
public static final Integer DELETE_ERR = 20020;
public static final Integer UPDATE_ERR = 20030;
public static final Integer SELECT_ERR = 20040;
public static final Integer SYSTEM_ERR = 50001;
public static final Integer SYSTEM_UNKNOW_ERR = 59999;
public static final Integer BUSINESS_ERR = 60001;
}
拦截并处理异常
package com.cqupt.controller;
import com.cqupt.exception.BusinessException;
import com.cqupt.exception.SystemException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
@RestControllerAdvice
public class ProjectExceptionAdvice {
@ExceptionHandler(SystemException.class)
public Result doSystemException(SystemException ex){
// 记录日志
// 发送信息给运维
// 发送信息给编程人员
return new Result(ex.getCode(),null,ex.getMessage());
}
@ExceptionHandler(BusinessException.class)
public Result doBusinessException(BusinessException ex){
// 传递信息给用户
return new Result(ex.getCode(),null,ex.getMessage());
}
@ExceptionHandler(Exception.class)
public Result doException(Exception ex){
// 记录日志
// 发送信息给运维
// 发送信息给编程人员
return new Result(Code.SYSTEM_UNKNOW_ERR,null,"系统繁忙,请稍后再试");
}
}
SpringMVC——SSM整合——项目异常处理的更多相关文章
- springMVC:SSM整合
环境要求 环境: IDEA MySQL 5.7.19 Tomcat 9 Maven 3.6 要求: 需要熟练掌握MySQL数据库,Spring,JavaWeb及MyBatis知识,简单的前端知识: 数 ...
- 2月4号学习的一个SSM整合项目,第一课
本文引自:https://github.com/Sunybyjava/seckill 原作者:sunybyjava@gmail.com seckill 一个整合SSM框架的高并发和商品秒杀项目,学习 ...
- java 进销存 库存管理 销售报表 商户管理 springmvc SSM crm 项目
系统介绍: 1.系统采用主流的 SSM 框架 jsp JSTL bootstrap html5 (PC浏览器使用) 2.springmvc +spring4.3.7+ mybaits3.3 SSM ...
- Spring,Mybatis,Springmvc框架整合项目(第一部分)
一.说在前面的话 本篇博文实现一个注册登录小项目,使用spring,mybatis,springmvc框架进行整合,我们创建的是一个maven工程,主要是方便jar包版本的管理.项目使用eclispe ...
- SpringMVC——SSM整合
1.环境要求: IDEA MySQL 5.1.19 Tomcat 9 Maven 3.6.1 2.数据库环境搭建 创建一个存放书籍的数据库表 CREATE DATABASE `ssmbuild`; U ...
- Spring,Mybatis,Springmvc框架整合项目(第三部分)
一.静态资源不拦截 第二部分最后显示的几个页面其实都加载了css和js等文件,要不然不会显示的那么好看(假装好看吧),前面已经说了,我们在web.xml中配置了url的拦截形式是/,那么Dispatc ...
- Spring,Mybatis,Springmvc框架整合项目(第二部分)
一.创建数据库表 打开Navicat Premium,点击左上角连接,选择mysql 输入你的数据库用户名和密码信息,可以先点击下测试连接,如果显示连接成功,说明能连接到数据库,然后点击确定.如果 ...
- spring-mybatis整合项目 异常处理2
org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'com/imooc ...
- spring-mybatis整合项目 异常处理
java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.NativeMethodAccessorIm ...
- SpringMVC详解及SSM框架整合项目
SpringMVC ssm : mybatis + Spring + SpringMVC MVC三层架构 JavaSE:认真学习,老师带,入门快 JavaWeb:认真学习,老师带,入门快 SSM框架: ...
随机推荐
- 题解:CF1985E Secret Box
设长宽高分别为 \(a,b,c\). 由题意可轻松的得到以下求方案数公式. \((x-a+1)(y-b+1)(z-c+1)\) 然后根据这个公式模拟即可. AC Code
- LeetCode102.二叉树的层序遍历
LeetCode题目链接:https://leetcode.cn/problems/binary-tree-level-order-traversal/submissions/548489149/ 题 ...
- 常用的adb命令(重要)
常用的adb命令(重要)
- Arm V8 - ADRP指令
ADRP指令 作用 将当前指令所在页的基地址加/减去字节差,并写入目标寄存器 字节差:与目标地址页基地址的间隔字节数,其为PAGE_SIZE的整数倍 此时的字节差就是指令所操作的立即数 该指令通常配合 ...
- 【转载】 介绍具有代表性的CPG控制机器人
原文地址: https://www.cnblogs.com/zhaochenliang/p/10453255.html ---------------------------------------- ...
- MindSpore 数据加载及处理
参考地址: https://www.mindspore.cn/tutorial/zh-CN/r1.2/dataset.html ==================================== ...
- 循环神经网络 —— LSTM 有状态模型(stateful LSTM)和无状态模型(stateless LSTM)
相关参考: 训练后的LSTM模型在进行预测时的初始h_n和c_n是什么或应该怎么设置? Keras中对RNN网络的statefull和stateless设置: 链接:https://keras.io/ ...
- Cython.Compiler.Errors.CompileError: Cython.Compiler.Errors.CompileError: /home/devil/anaconda3/envs/chainerRL/lib/python3.6/site-packages/mujoco_py/cymj.pyx
ubuntu系统下,python3.6,anaconda下配置mujoco210环境时遇到报错: /home/devil/anaconda3/envs/chainerRL/lib/python3.6/ ...
- 人工智能领域在显卡短缺之下的思考——“【亦】微笑面对显卡短缺:不买更快乐”有感——mindspore快快成长
划水之时看了看B站视频: [亦]微笑面对显卡短缺:不买更快乐 https://www.bilibili.com/video/BV1RZ4y1c7qT 在显卡短缺之下不仅仅电脑游戏玩家被卡脖子就连高校和 ...
- 局域网中如何为Ubuntu20.04和window10共享文件
如题,自己有两台电脑,一个安装的window10,一个安装的是Ubuntu20.04,两个电脑之间经常需要传文件,这个时候总是用U盘来回导文件就变得十分的不方便,于是就想到了设置网络共享. 本文的做法 ...