Приветствую всех!
Вопрос по nodejs. Подскажите - как ловить ексепшены асинхронных действи?
Вот пример кода:
try {
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.end('Hello World\n');
}).listen(8080, function () {
console.log("Server start");
console.log(JSON.stringify(arguments));
}).listen(8082, function () {
console.log("Server start");
console.log(JSON.stringify(arguments));
});
} catch (error) {
// сюда код не доходит!!!
console.log("Error"+error);
}
Предположим, что у меня на сервере один из портов занят, например, 8080, то конструкция listen выдает ошибку. Ситуация вполне рядовая, необходимо эту ошибку впоймать и как-то её обработать. Стандартные средства try/catch не подходят, в данном примере вываливается необработанный эксепшен и останавливается процесс.
Подозреваю, что это связано с асинхронными действиями.
Ребята, подскажите, как с этим бороться?