栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot中统一处理异常的响应

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot中统一处理异常的响应

前言

SpringBoot中统一处理异常的响应问题

一、代码如下
@ControllerAdvice
public class GlobalException {
    
    @ExceptionHandler(value = Exception.class)
    @ResponseBody
    public Result exceptionHandler( Exception e) {
        return new Result(500,e.getMessage());
    }
}

以上代码过滤器中抛出的异常无法被异常处理类捕获
在过滤器中我们可以严格的在可能出现异常的地方,用try,catch进行捕获,然后我们通过请求转发的方式转发到对应的Controller上

 try {
             id = JwtUtils.checkToken(token);

        }catch (Exception e){
            // 将错误信息封装在request中
            request.setAttribute("exception", e);
            // 请求转发
            request.getRequestDispatcher("/filterGlobalException").forward(request, response);
        }

@RestController
public class FilterGlobalException {
    @RequestMapping(path = "/filterGlobalException")
    public void filterGlobalException(HttpServletRequest request) {
        Exception exception = (Exception) request.getAttribute("exception");
        if (exception!=null){
            throw new  RuntimeException(exception.getMessage());
        }
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/884896.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号