全局异常处理

本文探讨了在项目中使用全局异常处理的重要性,避免敏感信息泄露,并提供了全局异常处理器的代码示例及测试说明。

在项目中运用全局异常处理前,请先阅读本篇博客,这将会帮助你快速理解:https://blog.youkuaiyun.com/u010286027/article/details/84864393

1.为什么使用全局异常处理
如果不使用全局异常包装处理异常信息,那么会将项目的一些信息暴露出去,这是很危险的,如下面案例所示:

@RequestMapping(value = "/login",method = RequestMethod.POST)
@ResponseBody
public ServerResponse<User> login(@RequestBody User user, HttpSession session){
    int i=0;
    int j = 666/i;
    ServerResponse<User> serverResponse = userService.login(user.getUsername(),user.getPassword());
    if(serverResponse.isSuccess()){
        session.setAttribute(Const.CURRENT_USER,serverResponse.getData());
    }
    return serverResponse;
}

在这里插入图片描述
2.全局异常处理器代码

@Slf4j
@Component
public class ExceptionResolver implements HandlerExceptionResolver {
    @Override
    public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
        log.error("{} exception",httpServletRequest.getRequestURI(),e);
        //将ModelAndView转换为json格式
        ModelAndView modelAndView = new ModelAndView(new MappingJackson2JsonView());
        modelAndView.addObject("status",ResponseCode.ERROR.getCode());
        modelAndView.addObject("msg","接口异常,详情请查看服务端日志异常信息!");
        modelAndView.addObject("data",e.toString());
        return modelAndView;
    }
}

3.测试
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值