A função set_error_handler() define uma função de tratamento de erros definida pelo usuário.
Esta função é usada para criar o próprio método de tratamento de erros do usuário durante o tempo de execução.
Esta função retorna o antigo manipulador de erros ou NULL em caso de falha.
set_error_handler(error_function,error_types)
parâmetro | descrever |
---|---|
função_erro | Obrigatório. Especifica a função a ser executada quando ocorrer um erro. |
tipos_de_erro | Opcional. Especifica em qual nível de relatório de erros os erros definidos pelo usuário são exibidos. O padrão é "E_ALL". Os possíveis níveis de relatório de erros estão detalhados na tabela abaixo. |
função_erro(nível_de_erro,mensagem_de_erro,arquivo_de_erro,linha_de_erro,contexto_de_erro)
parâmetro | descrever |
---|---|
nível_erro | Obrigatório. Especifica o nível de relatório de erros para erros definidos pelo usuário. Deve ser um número de valor. Os possíveis níveis de relatório de erros estão detalhados na tabela abaixo. |
mensagem_erro | Obrigatório. Especifica a mensagem de erro para erros definidos pelo usuário. |
arquivo_erro | Opcional. Especifica o nome do arquivo onde ocorreu o erro. |
linha_erro | Opcional. Especifica o número da linha onde ocorreu o erro. |
contexto_erro | Opcional. Especifica uma matriz que aponta para a tabela de símbolos ativa onde ocorreu o erro. Em outras palavras, error_context conterá um array descrevendo o escopo existencial no qual cada variável gera um erro. |
valor | constante | descrever |
---|---|---|
2 | E_WARNING | Erro de tempo de execução não fatal. A execução do script não é interrompida. |
8 | E_NOTICE | Notificações em tempo de execução. A descoberta de script pode ser um bug, mas também pode ocorrer durante a execução normal de um script. |
256 | E_USER_ERROR | Erro fatal gerado pelo usuário. É como o E_ERROR gerado pelo programador usando a função PHP trigger_error(). |
512 | E_USER_WARNING | Erro não fatal gerado pelo usuário. É como um E_WARNING gerado pelo programador usando a função PHP trigger_error(). |
1024 | E_USER_NOTICE | Notificações geradas pelo usuário. É como o E_NOTICE gerado pelo programador usando a função PHP trigger_error(). |
4096 | E_RECOVERABLE_ERROR | Erros fatais detectáveis. Isto é como um E_ERROR que pode ser capturado por um identificador definido pelo usuário (veja set_error_handler()). |
8191 | E_TODOS | Todos os níveis de erro e aviso, exceto E_STRICT (desde o PHP 6.0, E_STRICT fará parte de E_ALL). |
Dica: Se esta função for usada, as funções padrão de tratamento de erros do PHP serão completamente ignoradas. Se necessário, o manipulador de erros definido pelo usuário deve encerrar o script (die()). Nota: Se ocorrer um erro antes da execução do script, o manipulador de erros personalizado não será usado porque o programa personalizado não foi registrado naquele momento.
<?php//manipulador de erros function function customError($errno, $errstr, $errfile, $errline) { echo "<b>Erro personalizado:</b> [$errno] $errstr<br />"; Erro na linha $errline em $errfile<br />"; echo "Ending Script"; die(); }//set error handlerset_error_handler("customError");$test=2;//trigger errorif ($test>1) { trigger_error("Um erro personalizado foi acionado" }?>
A saída do código acima é semelhante a esta:
Erro personalizado: [1024] Um erro personalizado foi acionadoError na linha 19 em C:webfoldertest.phpEnding Script