Data source: http://rosettacode.org/wiki/Exceptions/Catch_an_exception_thrown_in_a_nested_call
