对于项目中通常会出现一些无法规避的错误或者意料之外的 bug, 需要用到错误处理.
我刚入行时就不太爱处理错误情况, 测试阶段并没有出现问题, 不过现在来看确实代码漏洞很大, 一些意料之外出现的错误通常都会导致页面崩盘. 用户不明所以, 按钮点了之后没反应, 页面直接白屏之类的, 可能直接就导致用户流失了, 如果给出一些友好提示, 可能就会挽留住一些用户.
这里不谈如何具体实践, 谈一些个人的杂乱思想.
项目中通常会有一些这样的场景:
测试环境偶发性问题, 比较难复现, 无法找到复现原因.
测试中解决的 bug, 线上环境通过别的用户复现了.
一些无法规避的错误或者不正常展示信息, 某些文章或列表没有数据, 给阿里云视频加水印等异步操作, 用户上传操作之后, 立即观看视频无法显示水印...
出现错误是无法避免的, 我们应当尽可能多的考虑到错误情况, 给与用户友好的提示.
列表没有内容时, 出现暂时没有数据的内容样式, 或者引导用户去一些其他页面的操作.
适当的利用 Windows.error 和 try-catch 等方法, 代码出现错误时, 监听代码错误, 尽量少的让代码错误影响页面的其他功能.
http 请求出现错误时, 配合服务端返回的数据, errMessage 或者 http 状态码 404,502 之类的固定情况给出错误提示.
封装方法使用使用 Promise 的 then 和 catch, 对细小的功能也区分 success 和 error 情景.
写功能时的思想
功能尽量区分的细小一些, 各个功能分别注意区分 success 和 error 情况 (可能会比较花时间, 不过想来代码的健壮性也得到了提升), 在开发时间不充裕的情况下, 可以先暂时留出 success 和 error 的方法, 不做处理, 也不会画太多时间.
暂时就想到这么多.
来源: http://www.jianshu.com/p/842bcaeb344c