ssm异常捕获和处理
ssm异常捕获和处理
package exception;import lombok.extern.slf4j.Slf4j;
import org.hibernate.HibernateException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ResponseBody;
import entity.vo.ResponseBodyResult;
import entity.vo.ResultVo;import java.io.IOException;
import java.sql.SQLException;/*** @Description 自定义异常处理程序* @Author zhaohuaqing*/
@ControllerAdvice
@Slf4j
public class ExceptionHandler {/*** @description 自定义空指针异常* @return entity.vo.ResponseBodyResult 异常信息* @author zhaohuaqing* @date 2021/6/11 21:47* @version 1.0*/@org.springframework.web.bind.annotation.ExceptionHandler({NullPointerException.class})@ResponseBodypublic ResponseBodyResult myNullExceptionHandler(NullPointerException e){log.error(e.getMessage());log.error(String.valueOf(e.getCause()));return ResponseBodyResult.errorOf(ResultVo.NULL_EXCEPTION);}/*** @description 自定义类型强制转换异常* @return entity.vo.ResponseBodyResult 异常信息* @author zhaohuaqing* @date 2021/6/17 15:58* @version 1.0*/@org.springframework.web.bind.annotation.ExceptionHandler({ClassCastException.class})@ResponseBodypublic ResponseBodyResult myClassCastExceptionHandler(ClassCastException e){log.error(e.getMessage());log.error(String.valueOf(e.getCause()));return ResponseBodyResult.errorOf(ResultVo.CLASS_CAST_EXCEPTION);}/*** @description 操作数据库异常* @return entity.vo.ResponseBodyResult 异常信息* @author zhaohuaqing* @date 2021/6/17 16:00* @version 1.0*/@org.springframework.web.bind.annotation.ExceptionHandler({SQLException.class})@ResponseBodypublic ResponseBodyResult mySQLExceptionHandler(SQLException e){log.error(e.getMessage());log.error(String.valueOf(e.getCause()));return ResponseBodyResult.errorOf(ResultVo.SQL_EXCEPTION);}/*** @description 输入输出异常* @return entity.vo.ResponseBodyResult 异常信息* @author zhaohuaqing* @date 2021/6/17 16:00* @version 1.0*/@org.springframework.web.bind.annotation.ExceptionHandler({IOException.class})@ResponseBodypublic ResponseBodyResult myIOExceptionHandler(IOException e){log.error(e.getMessage());log.error(String.valueOf(e.getCause()));return ResponseBodyResult.errorOf(ResultVo.IO_EXCEPTION);}/*** @description 方法未找到异常* @return entity.vo.ResponseBodyResult 异常信息* @author zhaohuaqing* @date 2021/6/17 16:00* @version 1.0*/@org.springframework.web.bind.annotation.ExceptionHandler({NoSuchMethodException.class})@ResponseBodypublic ResponseBodyResult myNoSuchMethodExceptionHandler(NoSuchMethodException e){log.error(e.getMessage());log.error(String.valueOf(e.getCause()));return ResponseBodyResult.errorOf(ResultVo.NO_SUCH_METHOD_EXCEPTION);}/*** @description 总的异常* @return entity.vo.ResponseBodyResult 异常信息* @author zhaohuaqing* @date 2021/6/17 16:03* @version 1.0*/@org.springframework.web.bind.annotation.ExceptionHandler({Exception.class})@ResponseBodypublic ResponseBodyResult myExceptionHandler(Exception e){log.error(e.getMessage());log.error(String.valueOf(e.getCause()));return ResponseBodyResult.errorOf(ResultVo.EXCEPTION);}
}
package entity.vo;/*** @Description 视图层统一返回值* @Author zhaohuaqing*/
public class ResponseBodyResult {/*** 返回代码*/private int code;/*** 消息说明*/private String message;/*** 数据*/private Object data;private ResponseBodyResult(int code, String message, Object data) {this.code = code;this.message = message;this.data = data;}private static ResponseBodyResult of(ResultVo resultVo, Object data) {return new ResponseBodyResult(resultVo.getCode(), resultVo.getMsg(), data);}public static ResponseBodyResult okOf(ResultVo resultVo) {return of(resultVo, null);}public static ResponseBodyResult okOf(ResultVo resultVo, Object data) {return of(resultVo, data);}public static ResponseBodyResult errorOf(ResultVo resultVo) {return of(resultVo, null);}public int getCode() {return code;}public void setCode(int code) {this.code = code;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}public Object getData() {return data;}public void setData(Object data) {this.data = data;}}
package entity.vo;
/*** @Description 枚举,返回状态和数据* @Author zhaohuaqing*/
public enum ResultVo {FOUND_ALL_USER(1,"查询所有用户成功"),FOUND_ALL_DEPART(1,"查询所有部门成功"),NULL_EXCEPTION(999,"空指针异常"),NO_FOUND_USER(998, "该用户不存在"),DELETE_USER_SUCCESS(1,"删除成功"),DELETE_USER_FAIL(997,"删除失败"),FOUND_USER_BY_DEPART(1,"根据部门查数据成功"),FOUND_ONE_USER(1, "该用户已存在"),UPDATE_USER_SUCCESS(1, "更新成功"),UPDATE_USER_FAIL(996, "更新失败"),LOGIN_OUT_SUCCESS(1,"注销成功"),FOUND_GENDER_SUCCESS(1,"查询性别信息成功"),SAVE_USER_SUCCESS(1,"保存成功"),SAVE_USER_FAIL(996,"保存失败"),THE_USER_ALREADY_EXISTS(995,"该用户已存在"),CLASS_CAST_EXCEPTION(994,"强制类型转换异常"),SQL_EXCEPTION(993,"操作数据库异常"),IO_EXCEPTION(992,"输入输出异常"),NO_SUCH_METHOD_EXCEPTION(991,"方法未找到异常"),EXCEPTION(990,"出现异常");private Integer code;private String msg;ResultVo(Integer code, String msg) {this.code = code;this.msg = msg;}public Integer getCode() {return code;}public String getMsg() {return msg;}}
ssm异常捕获和处理相关推荐
- ssm 异常捕获 统一处理_SSM 统一异常处理
SSM 统一异常处理 spring创建中, 处理异常可以使用try-cache处理, 也可以使用spring提供的统一异常处理 在spring中, 统一处理异常有2中方式 注解方式 @Exceptio ...
- ssm 异常捕获 统一处理_SpringMVC 统一异常处理介绍及实战
背景 什么是统一异常处理 目标 统一异常处理实战 用 Assert(断言) 替换 throw exception 定义统一异常处理器类 扩展 总结 <Java 2019 超神之路> < ...
- ssm 异常捕获 统一处理_统一异常处理介绍及实战
作者:sprinkle_lizhttp://www.jianshu.com/p/3f3d9e8d1efa 推荐阅读(点击即可跳转阅读) 1. SpringBoot内容聚合 2. 面试题内容聚合 3. ...
- ssm 异常捕获 统一处理_统一异常处理介绍及实战,看这篇就对了
点击上方 "程序员小乐"关注, 星标或置顶一起成长 每天凌晨00点00分, 第一时间与你相约 每日英文 Don't let anyone steal your dreams. Fo ...
- Spring Boot配置全局异常捕获
1 SpringBoot配置全局的异常捕获 项目的说明 配置thymeleaf作为视图模板 ExceptionController.java模拟测试用 MyAjaxExceptionHandler.j ...
- 简单介绍Go语言错误处理异常捕获+异常抛出
这篇文章主要介绍了Go语言错误处理异常捕获和异常抛出,Go语言的作者认为java等语言的错误处理底层实现较为复杂,就实现了函数可以返回错误类型以及简单的异常捕获,虽然简单但是也非常精妙,大大的提高了运 ...
- 用c实现跨平台异常捕获机制
为什么80%的码农都做不了架构师?>>> TBOX封装了一套跨平台的异常捕获实现,来模拟windows的seh异常处理功能,而且是线程安全的. 在linux/mac下的实现 使 ...
- python网络编程-异常处理-异常捕获-抛出异常-断言-自定义异常-UDP通信-socketserver模块应用-03
python网络编程-异常处理-异常捕获-抛出异常-断言-自定义异常-UDP通信-socketserver模块应用-03 参考文章: (1)python网络编程-异常处理-异常捕获-抛出异常-断言-自 ...
- Java多层的异常捕获
Java多层的异常捕获 参考文章: (1)Java多层的异常捕获 (2)https://www.cnblogs.com/somedayLi/p/7847136.html 备忘一下.
最新文章
- Swift中switch比较元组类型
- 计算机类学生发专利,关于统计2020年老师指导本科生发表科研论文数和申请专利数的通知...
- VMWare 修改虚拟机的swap文件
- css中的expression
- Android中日期与时间设置控件的使用
- 配置RADIUS服务器
- element表格头部换行
- itextpdf查找关键字坐标,以及在特定位置添加文字
- 计算机高级培训教师感言,教师信息技术培训感言信息技术培训心得多篇.docx
- 我来自江湖修改器|我来自江湖修改器3dm下载 v0.1二十四项
- 献给广大的程序猿——颈椎保养
- 无感延迟智能降噪,一款无线蓝牙耳机体验分享,值得安利
- Mac升级AS至2021.1.1 patch 2踩坑
- R_ggparliament_会议布局
- ubuntu从tty终端模式返回到图形桌面
- 多叉树的构建和树的高度的计算
- Linux power supply framwork drvs
- C++中int a和int a的区别
- 二次元PHP随机api接口源码,随机二次元图片API接口php源码
- 港科夜闻|香港科大(广州)与深圳湾实验室签署重要战略合作协议,共同促进粤港澳大湾区产业升级、社会发展与科技进步...
热门文章
- 【渝粤教育】国家开放大学2018年春季 4992T农村文化建设 参考试题
- 【渝粤题库】陕西师范大学500018 物理实验研究 作业(专升本)
- 【渝粤教育】电大中专电子商务网站建设与维护 (9)作业 题库
- php odbc驱动,用于Windows的PHP 7.0 ODBC驱动程序
- zabbix监控suse linux,SuSE 系统之部署 Zabbix 监控服务
- linux搭建Django环境,Linux (ubuntu 12.04)下搭建Python Django环境
- 第二章导数与微分思维导图_线性代数第二章 矩阵 思维导图
- cas java web,CAS干单点登陆(SSO)——集成Java Web 项目
- 每日一问:Android 滑动冲突,你们都是怎样处理的
- 几个最短路径算法Floyd、Dijkstra、Bellman-Ford、SPFA的比较