Rethrow makes sure that any exception in your promise chain won't
swallowed:

getJSON('/posts.json')
    .then(handlePost)
    .fail(RSVP.rethrow)

You can also to chain it further, like so:

getJSON('/posts.json')
    .then(handlePost)
    .fail(RSVP.rethrow)
    .then(null, handleRejection)