Edit in JSFiddle

var d = $.Deferred();
setTimeout(function(){
    d.resolve();
}, 200);
var jQueryPromise = d.promise();

jQueryPromise
    .then(function(){
        throw new Error('JQuery - catch me if you can!');
    })
    .then(null, function(reason){
        log('I catched you', reason);
    });
  
Promise.resolve()
    .then(jQueryPromise)
    .then(function(){
        throw new Error('Wrapped JQuery - catch me if you can!');
    })
    .then(null, function(reason){
        log('I catched you', reason);    
    });
    
function log(){
	var strings = Array.prototype.slice.call(arguments);
    var node = document.createElement('div');
    node.innerText = strings.join(' ');
    document.getElementById('log').appendChild(node);
}