总结0402(异常处理)

1.系统异常(即用户重试都无法解决的,例如网络异常,数据库异常,IO异常等)
AppException
ExceptionCode使用S_XXX开头
httpcode 500
2.业务异常(即可以通过用户重试或者改变参数解决的,例如参数错误,配置缺失,验证错误等)
BizException
ExceptionCode使用B_XXX开头
httpcode 420
3.代码异常(如NPE或SQLException) 和 系统异常(网络异常,环境问题等)都使用httpCode=500, ExceptionCode=S99999抛出,在服务中通过@ExceptionHandler(Throwable.class)兜底并添加code,S99999

异常处理流程:
程序中直接抛出抛出异常,最终由spring的统一异常处理(@ExceptionHandler)来捕获,打印异常信息,返回httpcode和ErrorResult
对象,而系统调用会经过ribbon,根据httpcode的状态判断是否进行重试。

3.@RestControllerAdvice spring统一异常处理
https://www.cnblogs.com/magicalSam/p/7198420.html
https://www.cnblogs.com/topfish/p/9573635.html

4.springboot 重试
spring-retry
https://blog.csdn.net/u012129558/article/details/79016732

5.spring cloud得重试机制
Feign.Retryer
ribbon重试配置

https://www.jb51.net/article/129336.htm
https://www.cnblogs.com/zhangjianbin/p/7228628.html

6.开发测试发布流程