捕获异步回调的异常

来源:互联网 发布:柬埔寨经济指标数据图 编辑:程序博客网 时间:2024/06/06 15:50
因为Node是异步的,很多函数(特别是第三方的包)均是基于异步回调的方式被调用。尽管我们已经对可能抛出异常的代码使用try/catch块,但还是常常不能正确地捕获可能发生的异常(Node已测),因为try/catch块执行完之后,异步函数很有可能还没有完成,异常还没有被实际抛出。当异常被抛出时,由于catch块已经超前执行完了,如果此时又没有更多的catch块能捕获抛出的异常,进程将异常终止。
  针对这种情况,一种解决办法是使用如下代码捕获所有未知的异常:
process.on("uncaughtException",function(ex){
console.log(ex.toString());
});
这是防止应用程序异常终止行之有效的方法。但如果及时地捕获所有的异常,还得另想他法,例如可以使用domian包。
0 0
原创粉丝点击