Показать сообщение отдельно
  #110 (permalink)  
Старый 14.05.2015, 09:41
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Erolast, что-то это похоже разные вещи:

var domain = require('domain');
domain.create().on('error', function(err) {
    console.log('caught');
}).run(function() {
    throw new Error;   // это ловим
    setTimeout(function() {
        throw new Error;   // и это ловим
    });
})


require('babel/register');
var co = require('co');

co(function* () {
    try {
        var result = yield new Promise((resolve, reject) => {
            throw new Error;   // это ловим
            setTimeout(() => {
                throw new Error;   // это нет
            });
        });
        return result;
    } catch(e) {
        console.log('caught');
    }
});


Домены предназначены для того, чтобы ловить исключения в асинхронных вызовах, для ошибок, не учтенных разработчиком. co + геренаторы, чтобы преобразовывать reject'ы в исключения и только на текущем уровне. Кроме того, использовать генераторы, чтобы ловить исключения... очередной костыль, не?
Ответить с цитированием