Función set_exception_handler

La función set_exception_handler permite definir una función que será llamada para manejar excepciones no capturadas. El parámetro recibe el nombre de la función manejadora o una función anónima. El manejador recibe el objeto de excepción como parámetro.

Sintaxis

phpset_exception_handler(callable $exception_handler): callable

Ejemplo

Establezcamos un manejador de excepciones simple:

php<?php
  function myExceptionHandler($exception) {
    echo 'Excepción capturada: ' . $exception->getMessage();
  }
  
  set_exception_handler('myExceptionHandler');
  
  throw new Exception('¡Algo salió mal!');
?>

Resultado de la ejecución del código:

php'Excepción capturada: ¡Algo salió mal!'

Ejemplo

Uso de una función anónima como manejador:

php<?php
  set_exception_handler(function($exception) {
    echo 'Error: ' . $exception->getMessage();
  });
  
  throw new Exception('Error crítico');
?>

Resultado de la ejecución del código:

php'Error: Error crítico'

Ejemplo

Restauración del manejador anterior:

php<?php
  function firstHandler($exception) {
    echo 'Primer manejador: ' . $exception->getMessage();
  }
  
  function secondHandler($exception) {
    echo 'Segundo manejador: ' . $exception->getMessage();
  }
  
  set_exception_handler('firstHandler');
  $old_handler = set_exception_handler('secondHandler');
  restore_exception_handler(); // Restaura firstHandler
  
  throw new Exception('Prueba');
?>

Resultado de la ejecución del código:

php'Primer manejador: Prueba'