小白教程

 找回密码
 立即注册
查看: 8460|回复: 4

RestControllerAdvice 不生效问题

[复制链接]

1

主题

1

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2021-5-5 08:38:04 | 显示全部楼层 |阅读模式
使用RestControllerAdvice做全局的异常控制,返回我自定义的一个对象。
使用debug模式步进,出现错误的时候能够正常的进入RestControllerAdvice注解下的类中对应ExceptionHandler注解的方法,也返回了我自定义的对象,但是在最后的返回结果中,并不是我自定义的这个对象,而是springmvc的默认错误,Internal Server Error。
上网查了下,得到的答案基本都是错误没正常抛出啊,切面中进行了限制啊什么的,但错误肯定是正常抛出了,要不不会进入到那个异常控制中。切面也只是一些鉴权啊什么的,我也试过把aop都停用掉,但还是不行。
回复

使用道具 举报

0

主题

1

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2021-5-10 13:21:40 | 显示全部楼层
  1. /**
  2. * @author liuyh
  3. * @Description:
  4. * @date 2020/9/2214:13
  5. */
  6. @ControllerAdvice
  7. @Slf4j
  8. public class ExceptionError {
  9.     @ExceptionHandler(value = Exception.class)
  10.     @ResponseBody
  11.     public Result defaultErrorHandler(HttpServletRequest req, HttpServletResponse resp, Exception e) {
  12.         e.printStackTrace();
  13.         Result resul = new Result();
  14.         if (e instanceof HttpRequestMethodNotSupportedException) {
  15.             resul.setResltInfo(Constant.CODE_TYPE_10, "非法请求", e.getMessage());
  16.         } else if (e instanceof HystrixRuntimeException) {
  17.             resul.setResltInfo(Constant.CODE_TYPE_30, "feign调用系统异常", e.getCause().getMessage());
  18.         } else {
  19.             resul.setResltInfo(Constant.CODE_TYPE_1, "系统异常", e.getMessage());
  20.         }
  21.         return resul;
  22.     }
  23. }
复制代码
回复

使用道具 举报

0

主题

1

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2021-5-19 04:23:50 | 显示全部楼层
我是在Controller返回的也是resul这个类型,如果业务发生异常,在自定义异常捕获里面处理完异常,在由Controller层返给前台。
回复

使用道具 举报

0

主题

1

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2021-5-21 07:47:34 | 显示全部楼层
异常处理与代码运行模式有关,通常调试模式之外的情况可能不支持异常处理机制。如果不是debug模式编译,会自动废弃异常有关代码。而且,advice最多是建议系统使用,非调试模式下通常会被系统忽略。
回复

使用道具 举报

0

主题

1

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2021-5-26 11:01:30 | 显示全部楼层
请问楼主解决了吗 我也遇到了同样的问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|小白教程 ( 粤ICP备20019910号 )

GMT+8, 2024-11-24 12:29 , Processed in 0.023505 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表