feiniaojin / graceful-response

Spring Boot接口响应处理解决方案,提供统一返回值封装、全局异常处理、自定义异常错误码、参数校验增强、断言增强等功能
https://doc.feiniaojin.com
MIT License
1.12k stars 171 forks source link

ValidationExceptionAdvice类中的exceptionHandler方法判断逻辑疑问 #46

Closed LordHumphrey closed 7 months ago

LordHumphrey commented 7 months ago

Describe the bug 最近正在阅读您的项目源码,注意到ValidationExceptionAdvice类中的exceptionHandler方法存在如下逻辑

if (e instanceof MethodArgumentNotValidException
                || e instanceof BindException) {
            ResponseStatus responseStatus = this.handleBindException((BindException) e);
            return responseFactory.newInstance(responseStatus);
        }

这里的MethodArgumentNotValidException已经继承了BindException类,所以此处似乎只要保留BindException即可,但是您一定有自己的想法,所以冒昧问问您这里是如何考虑的? 谢谢。

feiniaojin commented 7 months ago

这里应该是从历史代码重构过来的,当时MethodArgumentNotValidException还没有继承BindException,早期会分别对这两个异常进行处理,spring从5.3.0开始,MethodArgumentNotValidException继承BindException,Graceful Reponse也对处理逻辑进行了合并,合并的时候直接把MethodArgumentNotValidException写进去了,直接保留BindException就可以了。

LordHumphrey commented 7 months ago

好的,我想试试提一个pr,去除e instanceof MethodArgumentNotValidException,您看可以吗?谢谢。

feiniaojin commented 7 months ago

可以的啊,特别欢迎踊跃参与,对项目进行完善,更好地支持用户。记得加一下README中的用户群啊