У вас Exception из метода resolveClass() не ловится, тк его вызов находится
не в секции try{}
try {
// тут вызов кода, который может выбить исключение А
} catch (ExceptionA $e) {
// если A вылетело, то попадаем в отлове сюда
// дальнейший код, который может кидать исключения, надо обрабатывать отдельно,
// тк тут УЖЕ произошел отлов исключения из секции try, а новые вызовы надо по новой покрывать
}
Вообще: управление программой через исключения — плохая практика. Например вот такими вложенными обертками и риск поймать непредвиденное исключение выше