code: function(onFulfilled, onRejected, onProgress, ctx) {
          this
              .then(onFulfilled, onRejected, onProgress, ctx)
              .fail(throwException);
      }
docs: Like `then`, but terminates a chain of promises.
  If the promise has been rejected, this method throws it's "reason" as an exception in a future turn of the event loop.
  
  @param {Function} [onFulfilled] Callback that will be invoked with a provided value after the promise has been fulfilled
  @param {Function} [onRejected] Callback that will be invoked with a provided reason after the promise has been rejected
  @param {Function} [onProgress] Callback that will be invoked with a provided value after the promise has been notified
  @param {Object} [ctx] Context of the callbacks execution
  
  @example
  ```js
  var defer = vow.defer();
  defer.reject(Error('Internal error'));
  defer.promise().done(); // exception to be thrown
  ```