Gerando erros personalizados com PHP

Uma forma mais profissional de se exibir erros em aplicações PHP é através da função trigger_error(). Esta função lança um erro personalizado, definido pelo usuário, da mesma forma que são exibidos os erros do PHP.

Através dessa função, podemos definir 3 tipos básicos de erros:

E_USER_ERROR ->Erro fatal, exibe a mensagem e termina o script.

E_USER_WARNING -> A execução do script não é afetada, porém são exibidos avisos dos erros encontrados.

E_USER_NOTICE -> A execução do script também não é interrompida. Este tipo de erro serve para mostrar possíveis problemas que podem gerar um erro maior.

Para utilizar a função trigger_error(), basta chamá-la, passando como primeiro parâmetro a string contendo o erro e no segundo parâmetro, o tipo do erro, sendo que os tipos permitidos são os descritos acima.

Vamos ao exemplo:

<?php

if (!isset($_GET[‘id’])){

/* Se uma variavel ID nao for passada por GET, termina o script */

trigger_error(‘Nenhum ID foi informado!’, E_USER_ERROR);

}

if (!is_numeric($_GET[‘id’])){

/* Se o ID passado por GET nao for numerico, exibe um aviso */

trigger_error(‘Cuidado, o ID nao e numerico!’, E_USER_WARNING);

}

/* Por fim, se o ID for menor que zero, lançamos um erro do tipo E_USER_NOTICE */

if ($_GET[‘id’] < 0){

trigger_error(‘O ID e menor que 0!’, E_USER_NOTICE);

}

/* Exibimos o valor do ID */

echo ‘ID -> ‘ . $_GET[‘id’];

?>

Note que quando não existe uma variável ID passada por GET, é lançado um E_USER_ERROR, como este é um erro fatal, o erro é exibido e o script termina imediatamente.

Nota: para que os erros sejam exibidos corretamente, certifique-se que a diretiva display_errors do arquivo de configurações php.ini esteja marcada como On. Caso você não tenha acesso ao arquivo de configurações do PHP, adicione esta linha no começo do script:

ini_set(‘display_errors’, ‘on’);

Esta linha faz com que os erros do PHP sejam exibidos na tela.

Espero que tenham gostado.

Até a próxima 😉

 

1 pensou em “Gerando erros personalizados com PHP

Deixe um comentário

O seu endereço de e-mail não será publicado.

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.