美文网首页
使用@ControllerAdvice处理异常

使用@ControllerAdvice处理异常

作者: 黑曼巴yk | 来源:发表于2020-07-26 10:10 被阅读0次

简介

@ControllerAdvice注解是用来增强的Controller。可以实现三个方面功能:

  • 全局异常处理
  • 全局数据绑定
  • 全局数据预处理

全局异常处理

针对计算类型错误进行处理

@ControllerAdvice
public class MyControllerAdvice {
    @ResponseBody
    @ExceptionHandler({ArithmeticException.class})
    public Map<String, Object> arithmeticException(ArithmeticException e, HttpServletResponse resp) {
        Map<String, Object> map = new HashMap<>();
        map.put("code", 500);
        map.put("msg", e.getMessage());
        return map;
    }
}

统一参数预处理

前端时间单位用的是unix时间戳,单位秒,而java后端用的是Date类型。
在request请求时,如何把前端的时间戳类型优雅的转换为后端的Date类型呢。

@ControllerAdvice
public class MyControllerAdvice {
    @InitBinder
    public void initWebBinder(WebDataBinder binder) {
        //对日期的统一处理
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
        //添加对数据的校验
        //binder.setValidator();
    }
}

相关文章

网友评论

      本文标题:使用@ControllerAdvice处理异常

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