@ControllerAdvice + @ExceptionHandler 不起作用,springboot异常处理的一些坑

编程入门 行业动态 更新时间:2024-10-17 17:28:53

在sringboot中使用@ControllerAdvice处理异常十分轻松,但是在使用的过程中踩到了个坑,浪费了一些时间。也是怪自己没有好好解读springboot的文档!

下面是我的@ControllerAdvice声明的全局异常处理类的代码:

@ControllerAdvice(basePackages = {".dm.oa"})
@ResponseBody  // 这样的话可以直接说用@RestControllerAdvice的
public class OAExceptionHandler {@ExceptionHandler({DuplicateKeyException.class})public ResponseData handleDuplicateKeyException(DuplicateKeyException e){logger.error(e.getMessage(), e);return ResponseData.error("数据库已经有这个记录,不需要再次存入",407);}}

正常情况下当我.dm.oa包下某个Controller出现异常,将会被捕捉到进行异常处理,返回我们指定的数据格式。但是这样配置返回的依然是springboot默认返回格式。

解决方案:

使用@ExceptionHandler注解返回值最好是Map,重要的是返回结果中键的值不能为null。

原来我自定义的返回结构中存在null,就像这样,就不会正常返回奇怪得很:

public static Map newResult(String msg, int code, Object data){Map map = new HashMap();map.put("code",code);map.put("msg",msg);map.put("data",null);return map;}

————————————————————————————————————————————————————————

这是我发现的坑,当然还有其他人的,这里我就把别人发现问题引过来吧,方便以后查找

徐三爷XuePeng77 祁东握力

谢谢

更多推荐

不起作用,异常,ControllerAdvice,ExceptionHandler,springboot

本文发布于:2023-05-28 06:57:35,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/315145.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:不起作用   异常   ControllerAdvice   ExceptionHandler   springboot

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!