美文网首页Spring专题(非SpringBoot)
spring mvc全局捕获controller抛出的异常

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

作者: animagus | 来源:发表于2019-10-17 10:21 被阅读0次

相关代码

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进行统一管理。

实现原理

待补充
参考一下

相关文章

网友评论

    本文标题:spring mvc全局捕获controller抛出的异常

    本文链接:https://www.haomeiwen.com/subject/hdkmmctx.html