Node.JS教程52:获错误之“未捕获的异常”

造成Node程序崩溃的,几乎都是“未捕获的异常”。

当一个“未捕获的异常”出现时,Node会默认的终止进程的执行。

其实process.on()方法可以捕获进程级的异常,如:

执行、用浏览器发起访问,这时会报错:

但程序并没有报错。

如果不使用process.on()捕获这个异常,那么:

显然,当出现错误时,程序会退出:

可是,用process.on()捕获,并使程序不退出,真的好吗?

答案是:不好!

为什么?

因为会造成资源泄漏、内存泄漏。

参考资料:

也就是说,一旦发生这种错误,程序是必然要崩的。

没有立刻退出,也会因为资源泄漏,造成内存耗尽等原因而不久后退出。

正确的做法是:

即:处理该处理的,然后退出。

再然后呢,自然是找到问题原因,调试并解决问题。

方法?如何调试?

使用“域”:

使用域,可以让发代码运行在一个沙盒中、可以更好的监控部分代码。如果我们怀疑哪部分代码有问题,可以使用这种方法,监控、将错误提示给用户端,当然也可以输出日志协助我们找到问题点、解决问题。