0

Manipulação de erros com PHP (classe)

criado por Marcos Regis em 17/03/2010 11:28pm
Nunca mais seja o último a saber que seu site está com erros de codificação.
Nunca mais deixe de saber o porque daquela tela em branco no site em produção.
Esta função vai fazer seu site ter um eficiente sistema de envio de alertas para os erros que efetivamente precisem ser tratados.
Ela também irá ajudá-lo a desenvolver sem os pequenos contratempos que erros geram quando são exibidos no meio do HTML e ficam ocultos no código fonte ou mesmo deixam de fazer aquele método ajax responder adequadamente.
A classe foi codificada para PHP 5 mas pode ser adaptada para PHP 4 facilmente.

exemplo de uso :
// Inclua o arquivo da classe
include_once "MyErrorHandler.class.php";
// crie uma instancia
$myhandler = new MyErrorHandler();

// configure-a
$myhandler->setMailTo('suporte@marcosregis.com')
          ->setMailFrom('report@marcosregis.com')
          ->setLogMode(1) // indicando que erros devem ser enviados por email
          ->register(); // mande a classe se registrar como manipulador de erros padrão 

// Dispare um erro e veja o resultado
 trigger_error('Erro forçado',E_USER_ERROR);


Há uma documentação no código fonte.
Data Autor Changelog Download
19/03/2010 10:20pm Marcos Regis - Versão 3.0.0

Comentários:

Mostrando 1 - 1 de 1 comentários
Marcos Regis disse:
Devido a grande quantidade de pessoas que me questionam sobre porque não captura determinados erros, esclareço que o PHP não permite que "os seguintes tipos de erros não podem ser manipulados com uma função definida pelo usuário: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING, e a maioria de E_STRICT que ocorram no arquivo aonde set_error_handler() for chamada."

Portanto, erros de sintaxe no arquivo fonte ou em chamadas de métodos como por exemplo falta de ";" em um arquivo ou métodos não existentes, disparam erros que não podem ser manipulados.

O mesmo ocorre com métodos que ao executarem com argumentos que causem falha e disparam erros de E_COMPILE_ERROR como o require e o require_once.

Não é bug da classe, é limitação do PHP.






18/05/2011 4:50pm (~13 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)