# set_exception_handler

(PHP 5, PHP 7, PHP 8)

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

- restore_exception_handler() - Restaura la función de gestión de excepciones previamente definida
- restore_error_handler() - Recupera la función de gestión de errores previa
- error_reporting() - Establece cuáles errores de PHP son notificados
- Excepciones de PHP 5