[phobos] Exception chaining

Don Clugston dclugston at googlemail.com
Wed Jan 12 00:10:59 PST 2011


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 <andrei at erdani.com> 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
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos
>


More information about the phobos mailing list