Bug #31834
closedError handler callback causes fatal error for parse time errors
100%
Description
TYPO3's error handler callback t3lib_error_ErrorHandler::handleError() causes a fatal error for PHP parse time errors.
If an error occurs during parse time (like E_DEPRECATED due to deprecated $foo =& stdClass() code), autoloading is not available and such PHP standard class 'Exception' (extended by t3lib_exception) is not resolvable. This results in a fatal and misleading error 'Class "Exception" not found' together with a not useful backtrace. Additionally this behaviour hides the original causing error (deprecated code).
Debugging this is a pain in the ass.
TYPO3's default error types which are registered in custom error handler are covering such deprecation errors. If users have such deprecated code ($foo =& stdClass()) somewhere in their legacy code, they will face the same situation.
E_DEPRECATED has been introduced in PHP 5.3.
The more users with existing TYPO3 installations are upgrading to TYPO3 4.6+ (and such PHP 5.3+), the more likely we will get and see such misleading fatal errors. I recommend to fix this as soon as possible.