set_exception_handler

(PHP 5, PHP 7)

set_exception_handler Establece una función de gestión de excepciones definida por el usuario

Descripción

set_exception_handler ( callable $exception_handler ) : callable

Establece el manejador de excepciones predeterminado si una excepción no es capturada dentro de un bloque try/catch. La ejecución se detendrá después de la llamada a exception_handler.

Parámetros

exception_handler

Nombre de la función a llamar cuando ocurra una excepción no capturada. Es necesario que esta función de gestión acepte un parámetro, que será el objeto de excepción que fue lanzado. Esta es la firma del manejador:

handler ( Exception $ex ) : void

Desde PHP 7, la mayoría de los errores se notifican lanzando excepciones Error, las cuales serán también capturadas por el manejador. Error y Exception implementan la interfaz Throwable. Esta es la signatura del manejador desde PHP 7:

handler ( Throwable $ex ) : void

Se podría pasar NULL en su lugar para reiniciar este manejador a su estado predeterminado.

Precaución

Observe que al proporcionar una Exception explícita como tipo implicado al parámetro ex en una retrollamada causará problemas con la jerarquía de excepciones cambiada en PHP 7.

Valores devueltos

Devuelve el nombre del manejador de excepciones definido anteriormente, o NULL en caso de error. Si no se definió un manejador anterior también devolverá NULL.

Historial de cambios

Versión Descripción
7.0.0 Cambiado el tipo de parámetro pasado a exception_handler de Exception a Throwable
5.5.0 Anteriormente, si se pasaba NULL, esta función devolvía TRUE. Devuelve el manejador anterior desde PHP 5.5.0.

Ejemplos

Ejemplo #1 Ejemplo de set_exception_handler()

<?php
function manejador_excepciones($excepción) {
  echo 
"Excepción no capturada: " $excepción->getMessage(), "\n";
}

set_exception_handler('manejador_excepciones');

throw new 
Exception('Excepción No Capturada');
echo 
"No Ejecutado\n";
?>

Ver también