а в случае Yii в каком месте лучше определять exception_error_handler и вызывать set_error_handler, чтобы это было глобально (не только для WebApplication, но и для cron)
@zbender у меня для этих целей был файлик bootstrap.php где вся инициализация. Там же вешался свой обработчик ошибок. Так же у меня был сильно модифицированный вариант CWebApplication так что многое было уже там.
@Fesor если вызывать set_error_handler до Yii::createWebApplication, то он не срабатывает. Если в CApplication меняю параметры для set_error_handler на exception_error_handler, то ругается "A session had already been started"
Yii тут не при чем.
PHP не бросает исключенией при обращении к несуществующему элементу массива. В лучшем случае он вывалит NOTICE или WARNING какой-нить, но это не отлавливается в try..catch. В PHP для обработки таких ошибок есть отдельные функции: php.net/manual/ru/book.errorfunc.php
Хотя в Yii 2 по-моему сделали так, что php-шные ошибки конвертятся в исключения.