Erros

Gerenciamento de Erros no CodeIgniter

Em qualquer aplicação, seja ela grande ou pequena, fazer o gerenciamento de erros é muito importante. Armazenar esses erros em arquivos de log é importante para que você tenha um outro meio de recuperar essa informação, e nesse tutorial vou mostrar para você como fazer esse gerenciamento utilizando os recursos nativos do CodeIgniter.

O CodeIgniter, por padrão exibe todos os erros do PHP, e você pode alterar essas configurações no arquivo index.php, onde pode desativar a exibição dos erros, controlar os tipos de erros que serão exibidos em cada ambiente, entre outras ações. O código abaixo é um fragmento do arquivo index.php, que mostra a parte específica desse controle de erros.

O CodeIgniter possui 3 funções que permitem gerenciar os erros: show_error(), show_404(), log_message().

Essas 3 funções não estão associadas a nenhuma classe, podendo ser utilizadas em qualquer lugar da aplicação. Veja a seguir mais detalhes sobre cada uma dessas funções.

show_error()

show_error($message, $status_code, $heading = 'An Error Was Encountered');

Essa função exibe na tela a mensagem de erro utilizando o template padrão de erros do CodeIgniter, que podem ser encontrados em application/views/errors.

Ela aceita 3 parâmetros:

  • $message: mensagem de erro a ser exibida
  • $status_code: código do status da resposta HTTP, que deve ser um número inteiro
  • $heading: título da página de erro

O parâmetro $status_code é opcional, assim como $heading. If o valor de $status_code for menor que 100, então será atribuido o código 500 e o código de status de saída será atribuido com $status_code + EXIT__AUTO_MIN. Se o valor form maior que EXIT__AUTO_MAX ou $status_code for maior que 100, o código de status de saída será o da constante EXIT_ERROR.

Os valores para as contantes EXIT__AUTO_MIN e EXIT__AUTO_MAX são informados no arquivo application/configs/constants.php. Veja abaixo o fragmento de código do arquivo constants.php que contém as constantes citadas nesse parágrafo.

show_404()

show_404($page = '',$log_error = TRUE)

Essa função exibe na tela a mensagem de erro utilizando o template padrão de erros 404 do CodeIgniter, que podem ser encontrados em application/views/errors.

Ela aceita 2 parâmetros:

  • $page: é a URI da página a ser carregada
  • $log_error: é um booleano (TRUE ou FALSE) que vai definir se será gerado log ou não para esse erro 404. Por padrão todo erro 404 tem um log gerado.

Ambos os parâmetros são opcionais, dessa forma sempre que houver um erro 404 a página padrão de erro será exibida e o log será gerado. Caso queira exibir uma página específica, basta informar a URI dessa página no primeiro parâmetro, e para não gerar log, então defina o segundo parâmetro como FALSE.

log_message()

log_message($level, $message, $php_error = FALSE)

Essa função insere mensagens no arquivo de log (veja mais sobre os logs nesse outro artigo), é possui 3 parâmetros:

  • $level: string que define o nível do log; pode ser “error”, “debug” ou “info”
  • $message: mensagem de log a ser escrita no arquivo
  • $php_error: booleano que determina se o log é uma mensagem de erro nativa do PHP ou não

Vejamos mais um pouco sobre os níveis de log:

  • error: são erros do PHP ou de usuários
  • debug: mensagens auxiliares para o processo de debug, muito utilizadas durante o processo de desenvolvimento
  • info: mensagens com baixa prioridade, somente a nível de informação mesmo

A seguir tem um exemplo de aplicação das mensagens de log:

As mensagens de log são gravadas em arquivo no diretório application/logs da aplicação.

Com essas 3 funções apresentadas você poderá desenvolver melhor o gerenciamento de erros da aplicação, e mesclando o seu uso com os arquivos de log, com certeza terá um bom aproveitamente durante o processo de desenvolvimento da aplicação.

Até a próxima!