не понимаю что плохого в том, что обьеденился некоторый набор Exceptions воедино
дальше простой пример, мне было лень придумывать но как идея думаю будет понятно
есть такой набор
Код:
LogicException (extends Exception)
BadFunctionCallException
BadMethodCallException
DomainException
InvalidArgumentException
LengthException
OutOfRangeException
RuntimeException (extends Exception)
OutOfBoundsException
OverflowException
RangeException
UnderflowException
UnexpectedValueException
и допустим мы наследовали
PHP:
class MyBadMethodCallException extends BadMethodCallException{}
class MyOutOfBoundsException extends OutOfBoundsException{}
и хотим написать обработчик только если вернулось исключение
MyBadMethodCallException или
MyOutOfBoundsException остальные исключения обрабатываются на другом уровне
отсюда простое решение написать новую пустую сущьность MyException
PHP:
class MyBadMethodCallException extends BadMethodCallException implements MyException{}
class MyOutOfBoundsException extends OutOfBoundsException implements MyException{}
и уже можно проверять instanceOf(MyException)