请选择 进入手机版 | 继续访问电脑版

    参数异常,也返回系统异常?

[复制链接]
丁翼 发表于 2021-1-2 19:02:24 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
 
 
 
                       参数异常,也返回系统异常?

 
 
一.前言

      在系统异常显示中,我们常用到BaseResult作为系统返回的封装实体, 最近遇到一个问题, 不管是什么错误,都是返回 code: 500, 这对定位系统问题是非常不友好的, 那么能怎么更好的定位后端问题呢?
           这次的问题是, 当前端参数拼写错误或参数输入不正常提醒,怎么返回code和status?
 
 
二. 详情

 
   问题: 当前端参数拼写错误或参数输入不正常提醒,处置处罚返回500,后端还可以怎么返回code和status?
在详细日志中的问题:
  1. org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: public com.yidian.card.common.CardResult com.yidian.card.web.controller.CardController.getCards(java.lang.Integer,java.lang.String,java.lang.String,java.lang.Integer,java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.yidian.card.web.controller.request.ClientInfo)           
复制代码

解答:  
  1. 将参数的RequestParm 或RequestBody中添加 "required=fase"    比方: @RequestBody(required = false) ClientInfo clientInfo   再去判定 clientInfo是否为空.if (clientInfo == null || userId == null) {            throw new AppException(ResultCode.PARAM_ERROR);        }
复制代码
 
 
优化之前的效果:
  1. {    "code": 5000000,    "status": "系统异常",    "data": "系统开小差!"}
复制代码
 
 
但是这种问题显着是请求接口是缺少参数导致的, 日志返回不清晰.
修改之后返回效果, 让定位清晰化. 
 
  1. {    "code": 4000001,    "status": "参数错误",    "data": null}
复制代码
 
 
 
三. 总结

 
      本日最大的感受: 在十几年前, 学生年代的扎克伯格在一个破晓的晚上,用几个小时就前后端一个系统自己独立写出来,并上线了,还火爆了哈佛已经整个波士顿,现在自己工作多年了, 对整个需求分析,系统DB设计, 详细文档设计,酿成开发和测试整个流程和利用有了更加进一步的相识, 也能整个流程下来,但照旧非常的赞叹扎克伯格当时的本事.
   这只是在技能本事上与当年学生的扎克伯格对比的一点想法,固然跟现在扎克伯格的技能和商业思维,那就望尘莫及了,还差着十万八千里都不止了,,,,
   学习的积累和沉淀,还需要用心积累.
 
 
 
 
 
 
 

来源:https://blog.csdn.net/u013067756/article/details/112059341
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )