参数不正确是什么意思 参数不对什么意思( 二 )


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