(PHP 5, PHP 7, PHP 8)

set_exception_handler Sets a user-defined exception handler function


set_exception_handler(?callable $callback): string|array|object|null

Sets the default exception handler if an exception is not caught within a try/catch block. Execution will stop after the callback is called.



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): void

Since 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): void

null may be passed instead, to reset this handler to its default state.

Return Values

Returns the previously defined exception handler, or null on error. If no previous handler was defined, null is also returned.


Example #1 set_exception_handler() example

function exception_handler($exception) {
"Uncaught exception: " $exception->getMessage(), "\n";


throw new 
Exception('Uncaught Exception');
"Not Executed\n";

See Also