GoLang set_exception_handler

request it (397)
GoLang replacement for PHP's set_exception_handler [edit | history]



Do you know a GoLang replacement for PHP's set_exception_handler? Write it!

PHP set_exception_handler

PHP original manual for set_exception_handler [ show | php.net ]

set_exception_handler

(PHP 5, PHP 7)

set_exception_handler Sets a user-defined exception handler function

Description

callable set_exception_handler ( callable $exception_handler )

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:

void handler ( Exception $ex )

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:

void handler ( Throwable $ex )

NULL 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 from Exception to Throwable
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

<?php
function 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