Хочется видеть все же не адово старый shutdown handler, а какие-то новые возможности языка.
Есть разница между фатальными и нефатальными ошибками.
После фатальной ошибки выполнение скрипта просто невозможно. Конвертировать её в исключение нет никакого смысла, вообще. Повесь шатдаун хэндлер и спи спокойно. Если у тебя руки не загибаются за спину, до него дело вряд ли дойдёт. А если дойдёт, ты об этом узнаешь вторым.
А вот нефатальные ошибки, типа проблем с открытием файлов, хотелось бы видеть нормальными исключениями, чтобы не городить set_error_handler(array('tool', 'errorHandler')); с собаками в каждом отдельном проекте, а потом ещё следить, чтобы либы, которые ты подключаешь, не переопределяли его.