巨坑的ExceptionHandler讨论

项目中使用@ExceptionHandler处理预定义的异常,将抛出的异常按照固定格式返回前端:


异常时返回的效果是:

{"code":10001,"message":"被保险人保险区间重复保单数量已达上限,不能再投保!被保险人姓名【卡卡西】证件号【0000000000000000】","data":null}

但是希望其它未知异常也能输出异常信息,因此按照网上分享的方法:https://www.mkyong.com/spring-mvc/spring-mvc-exceptionhandler-example/

增加Exception处理方法:

增加改方法后,发现两个奇怪现象:

1、自定义的HttpGlobalError异常也不再被之前的方法处理,改成了由本方法处理;

2、同样是返回ResponseEntity对象,上面的方法返回的报文是以下形式---

{"code":10001,"message":"被保险人保险区间重复保单数量已达上限,不能再投保!被保险人姓名【卡卡西】证件号【370125198908250919】","data":null}

但是下面的方法返回的报文却是这种形式---

{"code":0,"message":null,"data":{"code":10001,"message":"被保险人保险区间重复保单数量已达上限,不能再投保!被保险人姓名【卡卡西】证件号【0000000000000000】","data":null}},多了一层封装。。

这种两种现象应该怎么解释,应该如何修改????被坑死了。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

你可能感兴趣的:(巨坑的ExceptionHandler讨论)