Função set_error_handler

A função set_error_handler define um manipulador de erros personalizado. O primeiro parâmetro recebe uma função callback que será chamada quando um erro ocorrer. O segundo parâmetro opcional pode especificar os tipos de erro que o manipulador deve capturar.

Sintaxe

phpset_error_handler(callable $error_handler, int $error_types = E_ALL | E_STRICT);

Exemplo

Um exemplo simples de um manipulador de erros personalizado:

php<?php
  function customError($errno, $errstr, $errfile, $errline) {
    echo "Erro [$errno]: $errstr em $errfile na linha $errline";
  }
  
  set_error_handler("customError");
  
  echo $undefinedVar;
?>

Resultado da execução do código:

phpErro [8]: Undefined variable: undefinedVar em /path/to/file.php na linha 7

Exemplo

Tratando apenas tipos específicos de erros:

php<?php
  function warningHandler($errno, $errstr) {
    if ($errno === E_WARNING) {
      echo "Aviso capturado: $errstr";
    }
  }
  
  set_error_handler("warningHandler", E_WARNING);
  
  strpos(); // Gerará um aviso
?>

Resultado da execução do código:

phpAviso capturado: strpos() expects at least 2 parameters, 0 given

Exemplo

Restaurando o manipulador de erros padrão:

php<?php
  set_error_handler(null); // Restaura o manipulador padrão
?>