进程守护

Node系列——Node中的异常处理。

元气小坏坏 提交于 2020-03-27 17:14:57
3 月,跳不动了?>>> 1、对异常错误的理解 异常错误应该被分为两种情况:操作失败 和 程序员失误 1.1、操作失败 这是正确编写的程序在运行时产生的错误。它并不是程序的Bug ,反而经常是其它问题。 例如:系统本身(内存不足或者打开文件数过多),系统配置(没有到达远程主机的路由),网络问题(端口挂起),远程服务(500错误,连接失败)。具体情况如下: 连接不到服务器 无法解析主机名 无效的用户输入 请求超时 服务器返回500 套接字被挂起 系统内存不足 1.2、程序员失误 这是程序里的Bug。这些错误往往可以在调试阶段通过修改代码避免。 它们永远都没法被有效的处理,而是应该在程序员变编程的时候注意,例如: 读取 undefined 的一个属性 调用异步函数没有指定回调 该传对象的时候传了一个字符串 该传IP地址的时候传了一个对象 1.3、二者的差别对比 人们把操作失败和程序员的失误都称为“错误”,但其实它们很不一样。操作失败是所有正确的程序应该处理的错误情形,只要被妥善处理它们不一定会预示 着Bug或是严重的问题。“文件找不到”是一个操作失败,但是它并不一定意味着哪里出错了。它可能只是代表着程序如果想用一个文件得事先创建它。 与之相反,程序员失误是彻彻底底的Bug。这些情形下你会犯错:忘记验证用户输入,敲错了变量名,诸如此类。这样的错误根本就没法被处理,如果可以