"Nested exceptions" is a pretty common way of achieving this. `Exception#cause` is the new Ruby 2.1 way of doing nested exceptions - the `#cause` of any exception is automatically set by `raise` calls. Some info here: http://devblog.avdi.org/2013/12/25/exception-causes-in-ruby-2-1/

Apparently this gem: https://github.com/ConradIrwin/cause provides the same functionality backported all the way to 1.8.7 - maybe we should give it a whirl?