2015-06-16 4 views
0

У меня очень простой вопрос; У меня есть неправильная конечная точка, и когда я пытаюсь следующий код, он вызывает исключениеОбработчик исключений в Node.js

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) 

Так я пытаюсь обработчик исключений, но это еще не handeling исключения и я получаю то же исключение:

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

Почему я не могу обработать исключение?

+0

Ошибка забрасывается асинхронно. Вам нужно будет проверить документы этой функции, которые вы используете, и как вы можете ее поймать (как правило, в обратном вызове). – Bergi

ответ

1

JavaScript попытка/выгода заявление не будет работать в этом случае вызывает эта операция выполняется асинхронно:

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

Но я не уверен, что это правильно, потому что мне нужно знать, какую библиотеку вы используете.

+0

О, хорошо знать! Спасибо! – user385729

+0

это node-rest-client – user385729

+0

Тогда он должен работать :) –

Смежные вопросы