feiniaojin / graceful-response

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

获取异常消息 #1

Closed simonzfq closed 2 years ago

simonzfq commented 2 years ago

抛出异常时,现在的方式是从@ExceptionMapper的msg里获取出错消息,那么如果出错信息不一样的话,是不是都要建立对应的Exception类,可以只建一个业务异常类,如果在业务异常类指定其message属性时,就获取该message作为出错消息,@ExceptionMapper的msg则作为message没有设置情况下的默认值

feiniaojin commented 2 years ago

异常提示有个优先级: (1)如果是@ExceptionMapper的异常,那么直接返回其msg; (2)没有@ExceptionMapper注解修饰,尝试看看这个异常有没有注册别名,有的话,取@ExceptionAliasFor注解的msg字段 (3)如果都没有,那么就通过ResponseStatusFactory产生一个默认的提示信息,目前系统默认的错误见DefaultResponseStatus这个类,错误提示是error。

如果需要修改默认的这个错误码和提示信息,可以实现实现ResponseStatusFactory接口,实现其defaultFail方法。