Catch the exception from future.result()

We prefer this over future.exception as apparently sometimes future.result() can throw an exception, but future.exception() returns None at the same time.