Allows additional messages to be appended.
It often makes for better (and more efficient) design to add context
details to an exception at intermediate points in the thread.
This class makes it easy and efficient to catch and rethrow for that purpose.