前言:

当不同方法执行时,抛出相同异常。为了简约代码和避免重复使用try{}catch{}。此时使用统一异常处理。但局部的统一异常处理只能为所在类所调用。因此产生全局异常处理,该类中统一异常处理方法可以作用于整个controller。(以下以自定义异常类为示例)

创建状态码枚举类,用于自定义异常返回状态:

public enum ServiceCode {OK(2000),ERR_BAD_REQUEST(4000),//错误请求ERR_NOT_FOUND(4040),//没有发现ERR_UNAUTHORIZED(4010),//未经授权ERR_UNAUTHORIZED_DISABLED(4011),//未经授权禁止ERR_FORBIDDEN(4030),//被禁止的ERR_CONFLICT(4090),//冲突ERR_INSERT(5000),//插入异常ERR_DELETE(5010),//删除异常ERR_UPDATE(5020),//更新异常ERR_SELECT(5030),//搜索异常ERR_JWT_EXPIRED(6000),//jwt过期ERR_JWT_MALFORMED(6010),//jwt格式不对ERR_JWT_SIGNATURE(6020),//jwl签名错误ERR_UNKNOWN(9999);//未知错误private Integer value;ServiceCode(Integer value) {this.value = value;}public Integer getValue() {return value;}}

自定义异常类:

public class ServiceException extends RuntimeException {private ServiceCode serviceCode;public ServiceException(ServiceCode serviceCode, String message) {super(message);this.serviceCode = serviceCode;}public ServiceCode getServiceCode() {return serviceCode;}}

(重点)全局统一异常处理类:

@RestControllerAdvice //可以将此类中特定方法作用于整个controller
public class GlobalExceptionHandler {public GlobalExceptionHandler() {log.debug("创建全局异常处理器对象:GlobalExceptionHandler");}@ExceptionHandler//统一异常处理,若只想某个类中单独共同处理,可以直接使用该注解到某个统一异常处理方法中,如下面方法为统一异常处理方法。public xxx handleServiceException(ServiceException e) {//ServiceException e是多个方法执行时抛出相同的异常类,在这里进行统一处理log.warn("程序运行过程中出现ServiceException,将统一处理!");log.warn("异常信息:{}", e.getMessage());return ;}
}

尾语:

只要抛出ServiceException错误时,无论在那个controller类中都能GlobalExceptionHandler捕获处理而不再需要在每个调用有ServiceException异常抛出的方法中进行捕获。

springMVC中全局异常处理相关推荐

  1. SpringMVC 中的异常处理

    SpringMVC 中的异常处理 异常处理的思路 系统中异常包括两类:预期异常和运行时异常 RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发.测试通过手段减 ...

  2. 【C#/.NET】.NET6中全局异常处理

    微信公众号:趣编程ACE 关注可了解每日一更的.NET日常实战开发技巧,欢迎公众号留言开发 获取源码; .NET6中全局异常处理 异常处理是我们在程序开发中不可或缺的一环,下文我将会结合程序Sampl ...

  3. java day62【 响应数据和结果视图 、 SpringMVC 实现文件上传 、 SpringMVC 中的异常处理 、 SpringMVC 中的拦截器 】...

    第1章 响应数据和结果视图 1.1返回值分类 1.1.1 字符串 1.1.2 void 1.1.3 ModelAndView 1.2转发和重定向 1.2.1 forward 转发 1.2.2 Redi ...

  4. SpringMVC中的 --- 异常处理

    系统异常处理器SimpleMappingExceptionResolver 处理器方法执行过程中,可能会发生异常,不想看到错误黄页,想看到一个友好的错误提示页. 自定义异常处理器 使用异常处理注解 转 ...

  5. 【SpringMVC学习07】SpringMVC中的统一异常处理

    我们知道,系统中异常包括:编译时异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发.测试通过手段减少运行时异常的发生.在开发中,不管是dao层 ...

  6. (转)SpringMVC学习(八)——SpringMVC中的异常处理器

    http://blog.csdn.net/yerenyuan_pku/article/details/72511891 SpringMVC在处理请求过程中出现异常信息交由异常处理器进行处理,自定义异常 ...

  7. JSON和几个的全局异常处理

    目录 一.SpringMVC对JSON的支持 1.json的各种场景 二.SpringMVC的全局异常处理的3种形式 1.非全局异常处理问题演示 ① 为什么要全局异常处理 ② 异常处理思路 ③ Spr ...

  8. Vue实现全局异常处理的几种方案

    Vue实现全局异常处理的几种方案 在开发组件库或者插件,经常会需要进行全局异常处理,从而实现: 全局统一处理异常: 为开发者提示错误信息: 方案降级处理等等. 那么如何实现上面功能呢?本文先简单实现一 ...

  9. 【学习笔记】springboot中的全局异常处理 和@ControllerAdvice的使用

    文章目录 全局异常处理 例子 @ControllerAdvice的其他使用场景 全局异常处理 系统中异常包括:编译时异常和运行时异常RuntimeException ,前者通过捕获异常从而获取异常信息 ...

  10. SpringMVC 全局异常处理的简单应用

    2019独角兽企业重金招聘Python工程师标准>>> 在SpringMVC框架的项目开发过程中,你还在使用 try{} catch(){} 输出异常吗?,那样你就真的OUT了,Sp ...

最新文章

  1. c++11随机数产生器default_random_engine
  2. CalledFromWrongThreadException
  3. python中range和xrange的异同
  4. 个人计算机与微型计算机的区别与联系,微处理器、微型计算机和微型计算机系统之间有何联系与区别?...
  5. 如何用python 开发web_如何用python开发web
  6. 前端学习(659):小结
  7. MonoBehaviour常用方法
  8. 此次边路调整系统推荐射手走哪路_王者荣耀地图重大对称改动,终于能射手对射手,上单对上单了...
  9. 字符串处理 —— AC 自动机
  10. java修改另存excel_Word文档导入Excel总变形,调整格式你花了1小时,同事三步就搞定...
  11. html 显示原始文本,Json显示为HTML文本 - 不是原始格式
  12. 一个过滤器不仅解决了会话标识未更新同时还顺带解决了已解密的登录请求
  13. HDU 3333-Turing Tree(BIT好题)
  14. 流应用– 移动互联网营销新利器
  15. 择校秘籍|南大计算机 和 北航计算机 应该怎么选?
  16. 如何用C++制作游戏(每天分享一个制作小技巧)
  17. 模拟点击事件php,利用js脚本模拟鼠标点击事件
  18. 2023最新苹果CMS10仿电影先生网站自适应源码/UI简约大气极速加载
  19. 伯克利文理学院的计算机课程,加州大学伯克利分校计算机科学研究生Offer及录取要求...
  20. python职业发展规划书范文_职业生涯规划书1000字范文

热门文章

  1. MySQL 之多表连查
  2. kali远程登录window_kali开启远程桌面
  3. 详解vue生命周期(常问面试题)
  4. matlab表示开环传函,自控实验四 一、二阶系统频率特性测试与分析 - GXUZF.COM - 林澈思的茶...
  5. 推荐5款提高生活和工作效率的好帮手
  6. CSAPP 2019大作业
  7. 7.Direct2D 捕鱼游戏开发-窗口对象DemoApp.h的说明
  8. 旅游景点购票管理系统
  9. 关于毕业论文格式问题解决办法
  10. 对警报线程池的警报线程_您可能对警报对话框不了解的地方