Node.js中的异常处理程序

时间:2015-06-16 20:21:54

标签: javascript node.js exception exception-handling

我有一个非常简单的问题;我有一个错误的端点,当我尝试以下代码时,它会抛出异常

client.post("http://WrongEndPoint", [], function (data, response) {
    console.log("data:", data, "response:", response.statusCode);
})

ERROR:

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: connect ETIMEDOUT
    at errnoException (net.js:905:11)
    at Object.afterConnect [as oncomplete] (net.js:896:19)

所以我尝试了异常处理程序,但它仍然没有处理异常并得到相同的异常:

try {
    client.post("http://WrongEndPoint", [], function (data, response) {
        console.log("data:", data, "response:", response.statusCode);
    })
} catch (e) {
    console.log("Error:", e)
}

为什么我仍然无法处理异常?

1 个答案:

答案 0 :(得分:1)

JavaScript try / catch 语句在这种情况下不起作用,因为此操作异步执行:

client.post("http://WrongEndPoint", [], function (data, response) {
    console.log("data:", data, "response:", response.statusCode);
});

要抓住它,你应该使用这样的方法

client.post("http://WrongEndPoint", [], function (data, response) {
    console.log("data:", data, "response:", response.statusCode);
}).on('error', function(err){  console.log(err); });

但是我不确定它是否正确,因为我需要知道你使用哪个库。