Ловля нескольких типов исключений в одном блоке catch

Я хотел бы найти более чистый способ получить следующую функциональность, чтобы ловить AError и BError в одном блоке:

try
{
    /* something */
}
catch( AError, BError $e )
{
    handler1( $e )
}
catch( Exception $e )
{
    handler2( $e )
}

Есть ли способ сделать это? Или я должен ловить их отдельно?

AError и Berror имеют общий базовый класс, но они также разделяют его с другими типами, которые я хотел бы передать в handler2, поэтому я не могу просто поймать базовый класс.

225
задан Dominic Gurto 8 December 2011 в 13:45
поделиться