Postado em 7 de março de 2008
Disparando erros personalizados com trigger_error()
Atenção! Essa postagem foi escrita há mais de 2 anos. Na informática tudo evolui muito rápido e algumas informações podem estar desatualizadas. Embora o conteúdo possa continuar relevante, lembre-se de levar em conta a data de publicação enquanto estiver lendo. Caso tenha sugestões para atualizá-la, não deixe de comentar!
Prefácio
Bem, amigos do PHPit, estamos aqui de volta para mais uma coluna (está aumentando a periodicidade, hein?). Hoje o assunto é um pouco desconhecido para alguns, mas pode estar manjado para outros.
Vou ser breve e suscinto, porque afinal de contas, meu tempo também é escasso!
Você já deve conhecer as mensagens de erro do PHP de longa data. Os famosos “Warnings” e “Fatal Errors” que insistem em aparecer nos scripts dos iniciantes (e de muitos veteranos também! :P).
O objetivo deste tutorial é explicar como lançar mensagens de erros de dentro do PHP fazendo com que elas se comportem da mesma maneira que as mensagens de erro do próprio.
A função se chama trigger_error()
Mão na massa
Para lançar um erro, é muito simples. Basta você saber a mensagem que quer mostrar na tela e o nível dela.
A tabela de erros pode ser encontrada aqui.
Porém você só usara os níveis de erro para usuário: E_USER_ERROR (256), E_USER_WARNING (512) e E_USER_NOTICE (1024).
O seguinte código
[php][/php]
gera a seguinte saída
Fatal error: Deu pau in /var/www/phpit/trigger.php on line 2
Agora vamos descobrir qual é a finalidade de cada um:
E_USER_ERROR: Irá lançar um “Fatal error”. Este tipo de erro para o script (assim como die ou exit). Geralmente utilizado quando uma condição obrigatória não é satisfeita.
E_USER_WARNING: Lança um “Warning”. Este tipo de aviso é utilizado quando ocorre um erro que não compromete o total funcionamento do script.
E_USER_NOTICE: Lança um “Notice”. Utilizado apenas para informar o usuário de algum evento inesperado durante a execução do script.
Conclusão
Utilizar esta função para disparar os erros da sua aplicação pode ser bem interessante. Estudando outros métodos de implementação, pode tornar-se uma ferramenta cada vez mais útil.
Caso você tenha alguma sugestão de implementação ou algum comentário a fazer a respeito desta função, fique a vontade para entrar em contato.
Um grande abraço e fiquem com Deus!