2 , 内部的逻辑错误或者jvm异常 , 通过RuntimeException抛出;
3 , 依赖的公共组件错误 , 给出环境问题或者调用问题的提示;
后端
形式: 中间件的方式 , 定义暴露的配置属性 , 对异常进行统一的处理封装;
文章插图
这里做一下调整 , 统一把分散在微服务里面错误码枚举放到团队公共的SDK中;
后端错误的分类:
内部:主要是对前端 , 大部分错误通过异常的方式抛出 , 后端做统一的处理;
外部系统:主要对接外部系统 , 有些是直接拼接错误码和错误消息的方式输出的;
建立在服务可用 , 即httpStatus=200的基础上 , 内部异常的分类:
说明
输入参数非法
参数缺失 , 参数不符合规则要求 , 请求类型不支持
逻辑错误
不具备操作权限 , jvm内部的异常 , 比如NPE等 , 方法超时 , 运行时异常(空指针等)
内部环境错误
依赖的中间件不可用或者调用方法报错 , 比如SQL写错了了
如果网关服务不可用: nginx需要有对应的40X , 友好json数据
如果网关后面的后端服务不可用: 后端服务需要返回 40X , 50X的友好json数据;
nginx 故障
后端网关
后端服务
前端资源
404友好提示页面
不经过
不经过
前端访问后端资源
url错误 , 浏览器默认404页面
路由找不到 , 404转换为json数据
40x转换为json数据
50x自然转换成了json数据
查看老业务系统的代码 , 现在后端的错误处理方式分两种:
说明
目前的缺点
统一异常处理
通过在web-api-service工程中
通过@RestControllerAdvice 标注一个统一的异常处理类
对每一种类别的异常进行处理
统计如下表
异常的层级和分类不够清晰
有些异常 e.getmessage可能是英语 , 看不懂;
直接拼装错误码和错误消息
分散在业务代码中 , 见下面的截图和部分代码截取
无法统一管理错误码和错误信息 , 并且错误信息中无正确操作指引信息
老业务系统统一异常处理分类
父类
错误码
说明
RuntimeException
Exception
- 笃定的意思 笃定的意思是什么
- 简易计税是什么意思 简易计税步骤和规定
- 不收不付冻结是咋回事 银行卡被冻结是什么原因造成的
- auto是什么意思车上的功能,车子里AUTO正确使用方法
- 空调不制冷的原因及解决办法,空调只吹风不制冷是什么原因怎么回事
- 望尘莫及是什么意思 望尘莫及是什么意思什么生肖
- guess guesswhat是什么意思
- ps软件是什么 ps软件photoshop
- 上巳节的风俗是什么 上巳节的风俗是什么时候
- style是什么意思中文 奇迹style是什么意思中文