Larry Wall larry-at-wall.org |Perl 6| wrote:
OK, so it's more like the "inner exception" in Microsoft's .NET
framework. My C++ exceptions have always had the ability to record
multiple "stanzas" of information, to re-throw and update the picky
details with context-specific interpretation.
It sounds like what you want is that if there is a pending unhandled
exception in dynamic scope, then 'die' or the fresh Exception object's
constructor will automatically pick that up as the inner exception.
No, just the new exception, which merely has to contain the old
unhandled exceptions somehow in case the user wants more information.
By the way, I'd like to see a user interface where the outer exception
is the one printed out in simple form, with the complete "cockpit
recorder" dump of information going into a file that is browser
accessible with a click on a link in the error message to "more info".
I did that about fifteen years ago. The dialog box had a drop-down to
show all the layers of information, and also a save button. The format
predates XML though, and was designed for high-speed and failsafe
logging, so it used control characters instead of XML-like tags.