(PHP 5, PHP 7)
set_exception_handler — Establece una función de gestión de excepciones definida por el usuario
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
.
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:
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:
Se podría pasar NULL
en su lugar para reiniciar este manejador a su estado predeterminado.
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.
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
.
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.
|
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";
?>