参数不正确是什么意思 参数不对什么意思

希望大家可以收获:
1 , 背景分析是否贴合工作的实际场景 , 能否触及痛点;
2 , 统一的技术方案 , 并演示最终的实现效果;
3 , 前端和后端相对完整的技术实现方案 , 系统的思考方式;
背景和需求
不同人群对错误处理的期望不同:这里基于业务系统简单列表汇总;
人群
错误提示的期望
业务系统产品经理
错误提示也是产品设计的一部分 , 标识正常业务的边界 , 
基于错误提示可以快速的进行业务功能的边界条件 , 关键流程流向提示;
业务系统测试人员
能定提示到是到底是前端还是后端的问题 , 快速的分类bug , 指派给对应的开发人员;
进行需求的二次确认 , 一些参数边界的提示信息必须符合产品规约 。
业务系统前端开发人员
联调的时候 , 后端的错误可以提示哪里出错了 , 
如果是参数错误 , 让我指引我哪个参数错了 , 我好调整
如果是后端逻辑或者内部错误 , 方便我提供截图和traceId给到后端开发 , 让后端去解决;
业务系统运维人员
后端资源耗尽了 , 最好可以提示我哪块资源不足 , 如何补充;
中间件有问题了 , 告知我哪个中间件 , 建议的运维方法;
如果实在无法在界面上告诉我 , 可以快速看到对应的应用日志 , 丢回给开发去进一步定位问题 。
业务系统后端开发人员
开发和集成测试环境 , 最好在界面上或者控制台能看到堆栈信息 , 哪行代码出错了;
最次也要能从界面或者控制台 , 或者抓包中找到traceId , 方便我从日志中或者调用链跟踪系统中快速的定位问题 , 
方便快速解决问题;
业务系统管理层
可服务性好 , 
站在用户的角度 , 希望有规范的提示和回到正确流程的提示;
站在客户方的二开或者集成工程师角度 , 希望错误码能统一 , 并且对提示 , 方便我快速集成和二开;
站在开发周期来说 , 希望错误提示可以加快前后端联调 , 测试的工作效率;
【参数不正确是什么意思 参数不对什么意思】架构师
错误处理公共组件化 , 兼顾开发期的可扩展性 , 复用性 , 易用性 , 以及兼顾运行期的可服务性;
二开用户(业务系统B端-开发人员)
我要错误编码 , 还要指导提示 , 最好在本接口中返回给我 , 或者指引我一个文档 , 
我按照编码去查;能加速我快速的集成或者二开;
用户:业务系统B-C端用户
告诉我哪里出错了 , 正确的使用方法 , 让我可以回到正确的流程;最好还能显示级别;
提示不能为空 , 不能有英文 , 不能有堆栈信息 , 不能有我看不懂的信息
客户:业务系统B端应用配置人员
同C端用户 , 主要是告诉我哪里操作错了 , 让我可以回到正确的流程中;
下面进行抽象和汇总 。
一个合适的错误处理方案应该是怎样的?

参数不正确是什么意思 参数不对什么意思

文章插图
统一技术方案
位置
处理要点
说明
前端
前端实现axios拦截器异常捕获 , 封装组件实现 , 展示逻辑&形式
原则:
服务端能响应的、能返回错误的 , 提示语使用后端返回
服务端不能响应的、不能返回错误的 , 提示语使用前端约定
后端
对rest接口进行统一异常的捕获并转换为错误码 , 错误消息;
对直接组装的统一错误码 , 错误消息 , 进行统一的管理 , 按照微服务进行错误码进行封装;
封装为组件形式 , 错误码按照接口的规约进行限制 , 应用级别的错误码和错误消息分散在微服务中;
错误分两种形式:
1 , 通过异常输出错误;
2 , 通过组装错误码和错误消息拼装错误返回信息;
异常分为3类:
1 , 参数校验或者接口url资源定位不到 , 需要提示前端调整;