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异常捕获和处理相关推荐

  1. ssm 异常捕获 统一处理_SSM 统一异常处理

    SSM 统一异常处理 spring创建中, 处理异常可以使用try-cache处理, 也可以使用spring提供的统一异常处理 在spring中, 统一处理异常有2中方式 注解方式 @Exceptio ...

  2. ssm 异常捕获 统一处理_SpringMVC 统一异常处理介绍及实战

    背景 什么是统一异常处理 目标 统一异常处理实战 用 Assert(断言) 替换 throw exception 定义统一异常处理器类 扩展 总结 <Java 2019 超神之路> < ...

  3. ssm 异常捕获 统一处理_统一异常处理介绍及实战

    作者:sprinkle_lizhttp://www.jianshu.com/p/3f3d9e8d1efa 推荐阅读(点击即可跳转阅读) 1. SpringBoot内容聚合 2. 面试题内容聚合 3. ...

  4. ssm 异常捕获 统一处理_统一异常处理介绍及实战,看这篇就对了

    点击上方 "程序员小乐"关注, 星标或置顶一起成长 每天凌晨00点00分, 第一时间与你相约 每日英文 Don't let anyone steal your dreams. Fo ...

  5. Spring Boot配置全局异常捕获

    1 SpringBoot配置全局的异常捕获 项目的说明 配置thymeleaf作为视图模板 ExceptionController.java模拟测试用 MyAjaxExceptionHandler.j ...

  6. 简单介绍Go语言错误处理异常捕获+异常抛出

    这篇文章主要介绍了Go语言错误处理异常捕获和异常抛出,Go语言的作者认为java等语言的错误处理底层实现较为复杂,就实现了函数可以返回错误类型以及简单的异常捕获,虽然简单但是也非常精妙,大大的提高了运 ...

  7. 用c实现跨平台异常捕获机制

    为什么80%的码农都做不了架构师?>>>    TBOX封装了一套跨平台的异常捕获实现,来模拟windows的seh异常处理功能,而且是线程安全的. 在linux/mac下的实现 使 ...

  8. python网络编程-异常处理-异常捕获-抛出异常-断言-自定义异常-UDP通信-socketserver模块应用-03

    python网络编程-异常处理-异常捕获-抛出异常-断言-自定义异常-UDP通信-socketserver模块应用-03 参考文章: (1)python网络编程-异常处理-异常捕获-抛出异常-断言-自 ...

  9. Java多层的异常捕获

    Java多层的异常捕获 参考文章: (1)Java多层的异常捕获 (2)https://www.cnblogs.com/somedayLi/p/7847136.html 备忘一下.

最新文章

  1. Swift中switch比较元组类型
  2. 计算机类学生发专利,关于统计2020年老师指导本科生发表科研论文数和申请专利数的通知...
  3. VMWare 修改虚拟机的swap文件
  4. css中的expression
  5. Android中日期与时间设置控件的使用
  6. 配置RADIUS服务器
  7. element表格头部换行
  8. itextpdf查找关键字坐标,以及在特定位置添加文字
  9. 计算机高级培训教师感言,教师信息技术培训感言信息技术培训心得多篇.docx
  10. 我来自江湖修改器|我来自江湖修改器3dm下载 v0.1二十四项
  11. 献给广大的程序猿——颈椎保养
  12. 无感延迟智能降噪,一款无线蓝牙耳机体验分享,值得安利
  13. Mac升级AS至2021.1.1 patch 2踩坑
  14. R_ggparliament_会议布局
  15. ubuntu从tty终端模式返回到图形桌面
  16. 多叉树的构建和树的高度的计算
  17. Linux power supply framwork drvs
  18. C++中int a和int a的区别
  19. 二次元PHP随机api接口源码,随机二次元图片API接口php源码
  20. 港科夜闻|香港科大(广州)与深圳湾实验室签署重要战略合作协议,共同促进粤港澳大湾区产业升级、社会发展与科技进步...

热门文章

  1. 【渝粤教育】国家开放大学2018年春季 4992T农村文化建设 参考试题
  2. 【渝粤题库】陕西师范大学500018 物理实验研究 作业(专升本)
  3. 【渝粤教育】电大中专电子商务网站建设与维护 (9)作业 题库
  4. php odbc驱动,用于Windows的PHP 7.0 ODBC驱动程序
  5. zabbix监控suse linux,SuSE 系统之部署 Zabbix 监控服务
  6. linux搭建Django环境,Linux (ubuntu 12.04)下搭建Python Django环境
  7. 第二章导数与微分思维导图_线性代数第二章 矩阵 思维导图
  8. cas java web,CAS干单点登陆(SSO)——集成Java Web 项目
  9. 每日一问:Android 滑动冲突,你们都是怎样处理的
  10. 几个最短路径算法Floyd、Dijkstra、Bellman-Ford、SPFA的比较