It's currently 'catch(auto e : E1, E2, E3)' but changing the syntax is
trivial if everyone decides they want it.

We should be consistent and allow to specify a type instead of auto.
The exception types (E1, E2, E3) should expand TypeTuples similar to how you
declare base classes.

alias TypeTuple!(SocketTimeOut, SocketFooBar) SocketExceptions;

try
{
    bind(...);
    listen(...);
}
catch (IOException io : SocketExceptions)
{
}

As for the syntax how about '=' assigning a catched exception.
catch(IOException io = E1, E2, E3)
catch(auto io = E1, E2, E3)

The colon is used for type conversions, where left implicitly converts to right.
catch(E1, E2, E3 : IOException io)
catch(E1, E2, E3 : auto io)

Reply via email to