Например
p = new Promise(function (resolve, reject) {
    throw 'err';
});
p.done();
В большинстве обеденных polyfill libs, сделанное вызовет ошибку, и текущее выполнение завершится.
Но если мы используем p.then(), ничего не произойдет. Ошибка проглатывается обещанием. Если мы используем p.catch, у нас нет способа выйти из текущего исполнения. Я хочу добиться чего-то вроде:
try {
    // something
} catch (err) {
    if (check(err)) {
        throw err;
    }
}
