避免因为错误而影响程序。区分致命错误和非致命错误
2017-01-04 22:12
459 查看
任何错误处理策略中最重要的一个部分,就是确定错误是否致命。
对于非致命错误,可以根据下列一个或多个条件来确定:
不影响用户的主要任务;
只影响页面的一部分;
可以恢复;
重复相同的操作可以消除错误;
本质上,非致命错误并不是需要关注的问题。想一下,大公司的网站就不会出问题吗,为什么他们很少出问题呢。其实可能是他们出了问题,但是我们没发现,或者是没受到影响。
因此,预测一些常见的错误,通过一些检测手段,避免此类错误。可以有更好的用户体验。
比如说,循环一个服务器传过来的数组, 可以用 list intanceof Array 先进行检测,虽然说你们已经约定好了数据类型,但是万一传过来的不是数组呢,岂不是就报错,将程序打断了。补充一下上面的检测数组的方法不是绝对正确,只能说一般情况下没错。最好的是这种,
Object.prototype.toString.call(list) == "[object Array]"
对于非致命错误,可以根据下列一个或多个条件来确定:
不影响用户的主要任务;
只影响页面的一部分;
可以恢复;
重复相同的操作可以消除错误;
本质上,非致命错误并不是需要关注的问题。想一下,大公司的网站就不会出问题吗,为什么他们很少出问题呢。其实可能是他们出了问题,但是我们没发现,或者是没受到影响。
因此,预测一些常见的错误,通过一些检测手段,避免此类错误。可以有更好的用户体验。
比如说,循环一个服务器传过来的数组, 可以用 list intanceof Array 先进行检测,虽然说你们已经约定好了数据类型,但是万一传过来的不是数组呢,岂不是就报错,将程序打断了。补充一下上面的检测数组的方法不是绝对正确,只能说一般情况下没错。最好的是这种,
Object.prototype.toString.call(list) == "[object Array]"
相关文章推荐
- 数据分析与数据挖掘在常规工作中的应用——基本统计量描述
- 【微服务架构】需要掌握知识
- Python之面向对象编程学习
- HTML中的SVG
- 2016秋季网络程序设计学习总结
- LeetCode解题报告 110. Balanced Binary Tree [easy]
- 数据源
- java并发编程(六)----(JUC)Semaphore
- 深入理解Spark 2.1 Core (四):运算结果处理和容错的原理与源码分析
- Windows下基于原始套接字的回射客户端
- 方法的定义及格式
- 案例1.用Ajax实现用户名的校验
- CSS3 经典教程系列:CSS3 线性渐变(linear-gradient)
- 蓝牙协议分析(7)_BLE连接有关的技术分析
- 今天没上传笔记啊……
- 第一天上班
- 15. 正则表达式
- java ListNode链表求和
- www
- jenkins构建持续集成