web开发中怎么处理后台的异常?
大家好,本人web
开发的新手一枚,有一个问题困惑着我。
用户前端提交请求后,如果后台发生了异常,这时该怎么处理呢?
我一般都是这样处理的:
1. 后台捕获异常写日志,返回一个错误状态码
2. 前端根据错误生成一个错误页面让用户看到
我觉得我这种处理方式有很多弊端:
1. 代码非常繁琐,要写很多额外的错误处理代码,代码不简洁
2. 没人会去看日志,所以即使写了日志没人看到
3. 用户看到错误如果不投诉我们也无从知晓
不知道各位大神是如何处理的呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
2. 没人会去看日志,所以即使写了日志没人看到
不看日志,难道你打算让程序自行修复bug吗???
有专门的BUG追踪平台,像 Laravel 这类框架都有统一的出口,在出口处捕获异常的基类。然后把异常传递给BUG平台,会自动记录出错的内容,和用户请求信息。
后台捕获异常返回统一状态码,你根据状态码给用户模态框提示就行:“系统异常,请联系系统管理员!”等等
日志什么的自己开发时候弄弄就行了,用户可不关心这个。
提交表单是可以前端先校验的,后端需要的字段明确,然后前端根据字段要求将提交前的输入错误控制在前端,保证在点击提交的时候是严格按照后台字段要求提交的数据。就这一点上就避免了大部分的异常。剩下的异常可以让后台定统一的状态码,前端根据状态码提示
统一返回给前端错误码是可行的。
但是实际的异常要记录到日志中,一般情况下,后端会使用ELK来收集系统产生的日志。
开发人员可以去日志系统中查看日志详情,而且,如果存在严重异常,还可以发送邮件或短信警报。