Php/docs/function.set-exception-handler
set_exception_handler
(PHP 5, PHP 7)
set_exception_handler — Sets a user-defined exception handler function
Description
Sets the default exception handler if an exception is not caught within a
try/catch block. Execution will stop after the
exception_handler
is called.
Parameters
exception_handler
Name of the function to be called when an uncaught exception occurs. This handler function needs to accept one parameter, which will be the exception object that was thrown. This is the handler signature before PHP 7:
handler ( Exception
$ex
) : voidSince PHP 7, most errors are reported by throwing Error exceptions, which will be caught by the handler as well. Both Error and Exception implements the Throwable interface. This is the handler signature since PHP 7:
handler ( Throwable
$ex
) : voidNULL
may be passed instead, to reset this handler to its default state.Caution
Note that providing an explicit Exception type hint for the
ex
parameter in your callback will cause issues with the changed exception hierarchy in PHP 7.
Return Values
Returns the name of the previously defined exception handler, or NULL
on error. If
no previous handler was defined, NULL
is also returned.
Changelog
Version | Description |
---|---|
7.0.0 | The type of parameter passed into exception_handler changed
|
5.5.0 | Previously, if NULL was passed then this function returned TRUE .
It returns the previous handler since PHP 5.5.0. |
Examples
Example #1 set_exception_handler() example
<?phpfunction exception_handler($exception) { echo "Uncaught exception: " , $exception->getMessage(), "\n";}set_exception_handler('exception_handler');throw new Exception('Uncaught Exception');echo "Not Executed\n";?>
See Also
- restore_exception_handler() - Restores the previously defined exception handler function
- restore_error_handler() - Restores the previous error handler function
- error_reporting() - Sets which PHP errors are reported
- PHP 5 Exceptions