Uma função bastante útil no PHP é a set_error_handler(). Seu papel é definir uma função em nível de usuário para tratar erros quando eles são lançados. Assim, o programador pode definir uma função própria para fazer o tratamento de erros, optando por registrar logs, por exemplo. A set_error_handler() não trata erros do tipo: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING.

Nesse exemplo, vamos escrever um programa que gera um E_NOTICE por incrementar uma variável que não existe. Logo em seguida, gera um E_WARNING por chamar a função pg_connect() sem especificar os parâmetros.

Para tratar os erros, vamos escrever a função trataErros. Ela basicamente vai escrever os erros em um arquivo texto. Ao final, vemos o conteúdo do arquivo.

  1. <?php
  2. function trataErros($errno$errstr$errfile$errline)
  3. {
  4.     $string "$errno - $errstr em $errfile na linha $errline\n";
  5.     file_put_contents('error.log'$stringFILE_APPEND);
  6.     // se retornar TRUE não faz o tratamento padrão do erro no PHP
  7.     return TRUE;
  8. }
  9. set_error_handler('trataErros');
  10. pg_connect();
  11. $a+=5;
  12. ?>


arquivo error.log

2 - Wrong parameter count for pg_connect() em /tmp/t.php na linha 10
8 - Undefined variable: a em /tmp/t.php na linha 11


Comentários

 


Você precisa realizar login pelo Facebook para enviar posts, comentários, apagar posts ou baixar posts em PDF. Para isso, clique no botão "Login no facebook".



Receba os posts por email: (?)

Conheça o Adianti Framework para PHP:

  • Desenvolvimento com componentes;
  • Formulários e datagrids.
  • Versão Web e Desktop (Gtk);
  • Multiplataforma;
  • Desenhe as interfaces;
  • IDE própria (Adianti Studio).
Ver detalhes...

Tenha mais produtividade com:

Adianti Studio: IDE para PHP

  • Leve e rápido;
  • Syntax highlight;
  • Gerência de projetos;
  • Navegação em banco de dados;
  • Autocomplete e plugins.
Mais informações...