Python 3 имеет аккуратный
try:
    raise OneException('sorry')
except OneException as e:
    # after a failed attempt of mitigation:
    raise AnotherException('I give up') from e
синтаксис который позволяет повысить исключение для последующих операций без потери контекста. Лучшая аналогия, которую я мог бы найти в Python 2, -
raise AnotherException((e,'I give up')), None, sys.exc_info()[2]
 где (e,'') является уродливым взломом, чтобы иметь исходное имя исключения, включенное в сообщение. Но нет ли лучшего способа?