DIP33: A standard exception hierarchy
Michel Fortin
michel.fortin at michelf.ca
Tue Apr 2 09:56:05 PDT 2013
On 2013-04-02 11:59:39 +0000, Dmitry Olshansky <dmitry.olsh at gmail.com> said:
> 02-Apr-2013 15:35, Andrei Alexandrescu пишет:
>> On 4/2/13 7:24 AM, Dmitry Olshansky wrote:
>>> You might want to add Visitor pattern to Exceptions but it's darn messy
>>> to deal with and is an overkill most of the time.
>>
>> Actually I think that's a good thing to do.
>>
>
> Why would be that? It doesn't solve the key problem of "try clause plus
> a ton of semi-identical catches" used just to perform a mapping of X
> handlers to Y subsets of errors. Plus visitor does the same dispatch
> that is already addressed by exception handlers (or partly so).
What would be nice is some syntactic sugar for the following pattern:
void handler(CommonExceptionType e)
{
// do something with exception
}
try { … }
catch (FooException e) { handler(e); }
catch (BarException e) { handler(e); }
catch (BazException e) { handler(e); }
That could become:
try { … }
catch (CommonExceptionType e in FooException, BarException, BazException)
{
// do something with exception
}
I've been secretly wishing for something like this, and not just in D.
--
Michel Fortin
michel.fortin at michelf.ca
http://michelf.ca/
More information about the Digitalmars-d
mailing list