У меня тут возник вопрос общего характера..
Есть класс, реализующий какие-либо операции низкого уровня (например, PDO). При возникновении ошибки он кидает какой-либо свой exception.
Есть класс более высокого уровня (например, User), который использует внутри себя выше описанный класс. У этого класса тоже есть свои exceptions.
Вопрос: есть ли смысл перехватывать эксепшены низкоуровневого класса (PDOException) и кидать наружу уже экспешены более высокого уровня (UserException)?
Зачастую операции с низкоуровневым классом так или иначе приходится оборачивать в try-catch, т.к. в случае ошибки нужно выполнять какие-то дополнительные операции.

Т.е. это может выглядить примерно так:
<?php
try
{
// запрос к базе с ошибкой
}
catch (PDOException $e)
{
// операции, выполняемые в случае ошибки
throw new UserException('описание ошибки');
}


Если честно мне не очень нравится эта конструкция. Причем это я описал 2-х уровневый каскад, а зачастую у меня их получается намного больше..
Как делаете вы и почему?