Função set_exception_handler

A função set_exception_handler permite definir uma função que será chamada para tratar exceções não capturadas. O parâmetro recebe o nome da função manipuladora ou uma função anônima. O manipulador recebe o objeto de exceção como parâmetro.

Sintaxe

phpset_exception_handler(callable $exception_handler): callable

Exemplo

Vamos definir um manipulador de exceções simples:

php<?php
  function myExceptionHandler($exception) {
    echo 'Exceção capturada: ' . $exception->getMessage();
  }
  
  set_exception_handler('myExceptionHandler');
  
  throw new Exception('Algo deu errado!');
?>

Resultado da execução do código:

php'Exceção capturada: Algo deu errado!'

Exemplo

Uso de função anônima como manipulador:

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

Resultado da execução do código:

php'Erro: Erro crítico'

Exemplo

Restauração do manipulador anterior:

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

Resultado da execução do código:

php'Primeiro manipulador: Teste'