Captura de erros nas promessas de JavaScript com uma tentativa de primeiro nível ... catch

Então, eu quero que minha captura de primeiro nível seja a que lida com o erro. Existe alguma maneira de propagar meu erro até a primeira captura?

Código de referência, ainda não está funcionando:

Promise = require('./framework/libraries/bluebird.js');

function promise() {
    var promise = new Promise(function(resolve, reject) {
        throw('Oh no!');
    });

    promise.catch(function(error) {
        throw(error);
    });
}

try {   
    promise();
}
// I WANT THIS CATCH TO CATCH THE ERROR THROWN IN THE PROMISE
catch(error) {
    console.log('Caught!', error);
}

questionAnswers(5)

yourAnswerToTheQuestion