节点.js中的异常处理程序

Exception handler in Node.js

本文关键字:异常处理程序 js 节点      更新时间:2023-09-26

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

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

错误:

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)
}

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

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); });

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