RestControllerAdvice 不生效问题
使用RestControllerAdvice做全局的异常控制,返回我自定义的一个对象。使用debug模式步进,出现错误的时候能够正常的进入RestControllerAdvice注解下的类中对应ExceptionHandler注解的方法,也返回了我自定义的对象,但是在最后的返回结果中,并不是我自定义的这个对象,而是springmvc的默认错误,Internal Server Error。
上网查了下,得到的答案基本都是错误没正常抛出啊,切面中进行了限制啊什么的,但错误肯定是正常抛出了,要不不会进入到那个异常控制中。切面也只是一些鉴权啊什么的,我也试过把aop都停用掉,但还是不行。
/**
* @author liuyh
* @Description:
* @date 2020/9/2214:13
*/
@ControllerAdvice
@Slf4j
public class ExceptionError {
@ExceptionHandler(value = Exception.class)
@ResponseBody
public Result defaultErrorHandler(HttpServletRequest req, HttpServletResponse resp, Exception e) {
e.printStackTrace();
Result resul = new Result();
if (e instanceof HttpRequestMethodNotSupportedException) {
resul.setResltInfo(Constant.CODE_TYPE_10, "非法请求", e.getMessage());
} else if (e instanceof HystrixRuntimeException) {
resul.setResltInfo(Constant.CODE_TYPE_30, "feign调用系统异常", e.getCause().getMessage());
} else {
resul.setResltInfo(Constant.CODE_TYPE_1, "系统异常", e.getMessage());
}
return resul;
}
} 我是在Controller返回的也是resul这个类型,如果业务发生异常,在自定义异常捕获里面处理完异常,在由Controller层返给前台。 异常处理与代码运行模式有关,通常调试模式之外的情况可能不支持异常处理机制。如果不是debug模式编译,会自动废弃异常有关代码。而且,advice最多是建议系统使用,非调试模式下通常会被系统忽略。 请问楼主解决了吗 我也遇到了同样的问题
页:
[1]