How about this rule: --- If all collateral exceptions are derived from Exception, the 'boss' or Master Exception is the first exception thrown. Otherwise, the first Error (or Throwable non-Exception) is the boss. The exception, including all collateral exceptions, will be caught by the first handler who can catch the boss. ---
Two issues: * If the boss is a collateral exception, we still need a way to find out what the first exception was. Maybe need to add a 'first' (or 'prev') member to Throwable? * It is still possible to throw an Object which isn't derived from Throwable. Can we disallow this? (We could throw a "NoThrowableError" if such an object is found to have been thrown (can happen via casting)). This would remove some really nasty corner cases. On 12 January 2011 01:10, Andrei Alexandrescu <[email protected]> wrote: > On 1/11/11 4:03 PM, Jonathan M Davis wrote: >> >> On Tuesday, January 11, 2011 15:50:52 Andrei Alexandrescu wrote: >>> >>> I don't think that's helpful. It complicates the flow a lot because now >>> understanding how the program acts depends not on the types anymore, but >>> on what happens dynamically. Makes it more difficult, not easier, to >>> write robust code. >>> >>> If I throw a FileException, I must catch a FileException with >>> catch(FileException) regardless of what collateral exceptions have >>> happened. >> >> I agree as long as it's other Exceptions that have been thrown. But >> Errors? >> Aren't they typically supposed to kill your program? >> >> - Jonathan M Davis > > I agree that non-Exception Throwables are an out-of-band method of > communication that deserves special attention. > > Don, would it be difficult to make a non-Exception Throwable thrown during > unwinding essentially come to the top of the foodchain and save everything > in its tail? > > > Andrei > _______________________________________________ > phobos mailing list > [email protected] > http://lists.puremagic.com/mailman/listinfo/phobos > _______________________________________________ phobos mailing list [email protected] http://lists.puremagic.com/mailman/listinfo/phobos
