SSM-Springboot笔记(6)- 全局异常处理

任何业务系统都有可能发生异常的场景,通过配置全局异常,可以制定统一的异常页面或者错误码,从而提高用户的体验度。

1 Springboot配置全局异常

  • 类添加注解
    @ControllerAdvice,如果需要返回json数据,则⽅法需要加@ResponseBody
    @RestControllerAdvice, 默认返回json数据,⽅法不需要加@ResponseBody
  • ⽅法添加处理器
    捕获全局异常,处理所有不可知的异常
    @ExceptionHandler(value=Exception.class)
    示例演示:

1.1 创建controller同级包handler

1.2 在handler包下创建异常处理类:CustomExceptionHandler

@RestControllerAdvice # 此注解表明该类为异常处理类
public class CustomExceptionHandler {

    @ExceptionHandler(value = Exception.class)  # 针对异常的处理方法
    RetData handlerException(Exception e, HttpServletRequest request) {
        // 定义全局异常标识
        String errMsgPrefix = "服务器异常错误: ";

        return  RetData.RetError(-2, errMsgPrefix + e.getMessage());
    }

}

1.3 编写测试代码测试

    @RequestMapping("list")
    public Object getList() {
        Map<String, String> map = new HashMap<>();

        int i = 1 / 0;  # 制造异常

        map.put("1", "jackyan");
        map.put("2", "daisy");

        return map;
    }

1.4 访问接口结果输出:

{
    "code": -2,
    "data": null,
    "message": "服务器异常错误: / by zero"
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容