Disparando erros personalizados com trigger_error()
Enviado em 07/03/2008 às 07:57
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
trigger_error('Deu pau',256);
?>
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!