为了账号安全,请及时绑定邮箱和手机立即绑定

线上应用,如果数据库操作失败的话应该如何处理?

线上应用,如果数据库操作失败的话应该如何处理?

喵喵时光机 2019-03-01 10:47:08
求教,线上应用,如果数据库操作(insert,update,delete)失败的话,处理逻辑应该是如何? 将错误返回给用户? 不做处理? 在执行一次? 还是?
查看完整描述

5 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

操作失败正常返回就行了 ,返回操作失败的错误码,比如

success:false,
message:更新/删除失败

但是作为开发有一个原则就是,失败的具体信息不能输出到用户操作界面,

打个比方,你更新一条数据,更新失败,是由于数据库连接失败,数据库挂了之类的,你不可能把错误信息输出到用户端,告诉用户数据库连接失败吧

如果是sql报错,这属于应用错误了,一定要捕获异常,将异常记录在日志里

sql的相关操作一定要用try{}catch(){} 千万不能把异常流到上游,并且上游没有做对异常处理的相关操作

批量操作一定要做好事务,

查看完整回答
反对 回复 2019-03-01
?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

当然是找出所有捕获到异常比如昵称唯一,密码不正确等等
其他的就返回未知异常,不要暴露自己的异常信息.

查看完整回答
反对 回复 2019-03-01
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

根据错误码给用户返回信息吧,再执行一次不建议,因为对数据库来说可能会造成脏数据

查看完整回答
反对 回复 2019-03-01
?
温温酱

TA贡献1752条经验 获得超4个赞

  • 现场还原:数据回滚至操作前。重不重试分场景,通用的原则是同步不重试,异步重试

  • 异常处理:同步:异常包装成可读的错误信息给用户,提醒用户重试。异步:监控异常信息

查看完整回答
反对 回复 2019-03-01
?
HUWWW

TA贡献1874条经验 获得超12个赞

最主要的还是先rollback吧

查看完整回答
反对 回复 2019-03-01
  • 5 回答
  • 0 关注
  • 826 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号