spring mvc全局捕获controller抛出的异常

相关代码

import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

// 标记是对controller的advice
@RestControllerAdvice
public class ControllerExceptionHandler {
    // 标记匹配的异常
    @ExceptionHandler(value = Exception.class)
    public String handException(Exception e) {
        // 在这里可以对相应的异常进行封装
        return new ReturnMsg().handleException(e);
    }
}

业务场景

之前公司的代码在每个controller最外层都包裹了异常异常处理的代码,用于处理业务上抛出的异常,大致如下

function() {
    try {
        // 操作业务
    } catch() {
        // 处理业务异常,封装后返回前端
    }
}

这样就造成了大量的重复代码,而且catch中对业务异常处理的方式基本都是相同的,并不存在特别之处,所以可以基于ControllerAdvice进行统一管理。

实现原理

待补充
参考一下

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在具体的SSM项目开发中,由于Controller层为处于请求处理的最顶层,再往上就是框架代码的。因此,肯定需要在...
    Java大生阅读 583评论 0 0
  • 文章会从三个方面进行分析: 提出统一异常处理机制的好处,以及该机制使用姿势 提供案例:不使用该机制会产生什么样的情...
    ZX_周雄阅读 1,144评论 0 5
  • 2019年3月21日上午,红花岗区未成年人心理健康中心司秋艳老师来莅临我校检查与督导心理健康教育工作,我校心理办公...
    转账给我阅读 1,339评论 0 0
  • 在微博看到画凯尔特结的视频,觉得蛮好玩的,于是顺手学了一下。过程很简单,不过想要画完美就得慢慢来
    不爱猫咪最怕小狗阅读 927评论 0 5
  • 成功的男人,最明显的特点就是自信和乐观。在他面前,没有翻不过的山,没有趟不过的河;在他眼里,砍头估计不会有碗大的疤...
    梁新生阅读 452评论 0 3

友情链接更多精彩内容