Attention
TYPO3 v11 has reached end-of-life as of October 31th 2024 and is no longer being maintained. Use the version switcher on the top left of this page to select documentation for a supported version of TYPO3.
Need more time before upgrading? You can purchase Extended Long Term Support (ELTS) for TYPO3 v11 here: TYPO3 ELTS.
How to extend the error and exception handling
If you want to register your own error or exception handler:
- Create a corresponding class in your extension
-
Override the Core defaults for
production
,Exception Handler debug
orException Handler error
inHandler typo3conf/
:Additional Configuration. php $GLOBALS['TYPO3_CONF_VARS']['SYS']['errorHandler'] = \Vendor\Ext\Error\MyOwnErrorHandler::class; $GLOBALS['TYPO3_CONF_VARS']['SYS']['debugExceptionHandler'] = \Vendor\Ext\Error\MyOwnDebugExceptionHandler::class; $GLOBALS['TYPO3_CONF_VARS']['SYS']['productionExceptionHandler'] = \Vendor\Ext\Error\MyOwnProductionExceptionHandler::class;
Copied!
Tip
We use typo3conf/
and not ext_
in the extension (as previously documented) because that will be executed
after the error / exception handlers are initialized in the bootstrap process.
An error or exception handler class must register an error (exception)
handler in its constructor. Have a look at the files in EXT:
to see how this should be done.
If you want to use the built-in error and exception handling but extend it with your own functionality, derive your class from the error and exception handling classes shipped with TYPO3.
Example Debug Exception Handler
This uses the default Core exception handler Debug
and overrides some
of the functionality:
namespace Vendor\SomeExtension\Error;
class PostExceptionsOnTwitter extends \TYPO3\CMS\Core\Error\DebugExceptionHandler
{
public function echoExceptionWeb(Exception $exception)
{
$this->postExceptionsOnTwitter($exception);
}
public function postExceptionsOnTwitter($exception)
{
// do it ;-)
}
}
$GLOBALS['TYPO3_CONF_VARS']['SYS']['debugExceptionHandler'] = \Vendor\SomeExtension\Error\PostExceptionsOnTwitter::class;