PHP - Função set_error_handler ()

Sintaxe

mixed set_error_handler ( callback $error_handler [, int $error_types] );

Definição e Uso

Esta função pode ser usada para definir sua própria maneira de lidar com erros durante o tempo de execução, por exemplo, em aplicativos nos quais você precisa fazer uma limpeza de dados / arquivos quando ocorre um erro crítico ou quando precisa acionar um erro sob certas condições.

Parâmetros

Sr. Não Parâmetro e Descrição
1

error_handler(Required)

Ele especifica a função a ser executada em erros. A sintaxe de error_handler é fornecida abaixo.

2

error_types(Optional)

Ele especifica em quais níveis de relatório de erros o erro definido pelo usuário será mostrado. O padrão é "E_ALL". Consulte "PHP Error and Logging Constants:" para possíveis níveis de relatório de erros.

Sintaxe da função de manipulador de erros

error_function(error_level,error_message, error_file,error_line,error_context);

Aqui está a descrição do paramenter -

  • errno - O primeiro parâmetro, errno, contém o nível do erro gerado, como um número inteiro.

  • errstr - O segundo parâmetro, errstr, contém a mensagem de erro, como uma string.

  • errfile - O terceiro parâmetro é opcional, errfile, que contém o nome do arquivo no qual o erro foi gerado, como uma string.

  • errline - O quarto parâmetro é opcional, errline, que contém o número da linha em que o erro foi gerado, como um inteiro.

  • errcontext - O quinto parâmetro é opcional, errcontext, que é uma matriz que aponta para a tabela de símbolos ativa no ponto em que o erro ocorreu.

Valor de retorno

Retorna uma string contendo o manipulador de erros definido anteriormente (se houver) ou NULL em caso de erro.

Exemplo

A seguir está o uso desta função -

<?php
   function customError($errno, $errstr, $errfile, $errline) {
      echo "Custom error: [$errno] $errstr\n";
      echo "Error on line $errline in $errfile\n";
      echo "Ending Script";
      
      die();
   }
   
   //set error handler
   set_error_handler("customError");
   $test = 0;
   
   //trigger error
   if ($test >  -1) {
      trigger_error("A custom error has been triggered");
   }
?>

Isso produzirá o seguinte resultado -

Custom error: [1024] A custom error has been triggered Error on line 16 
in /home/cg/root/1531703/main.php 
Ending Script