Pular para o conteúdo

Introdução a manipulação de erros em PHP

Abordaremos os pontos básicos na manipulação de erros em PHP. Humanos erram, um computador obviamente não é humano e por isso erros devem ser evitados ao extremo. E quando eles acontecerem seu sistema deve estar preparado para detectá-los e agir da melhor forma. A manipulação de erros dependerá mais do programador do que de qualquer outra coisa.
Lorran Luiz luizhacker
Hits: 31.966 Categoria: PHP Subcategoria: Segurança
  • Indicar
  • Impressora
  • Denunciar

Parte 3: Preparando seu código para as exceções

Já vimos como cercar uma parte do código para manipular os erros que nela ocorrerem. Veremos a partir de então como "delatar" os erros e alertar o sistema quanto a eles.

Construindo uma exceção

O método construtor da classe Exception requer 2 parâmetros, sendo 1 opcional:

public Exception::__construct ([ string $message=NULL [, int $code ]] )

O primeiro parâmetro é a mensagem do erro e o segundo o código do erro (opcional).

Disparando o alarme

Em PHP usamos a palavra-chave throw para alertar o sistema da ocorrência de um erro, uma exceção. Throw é seguido de um código que solicita a construção de um novo objeto de exceção.

Para instanciar uma classe no PHP usamos a palavra-chave new seguida do nome da classe. Então a sintaxe ficará assim:

throw new Exception("Mensagem", 1);

Como usar "throw"

Podemos usar a condicional if para decidirmos quando disparar uma exceção.

Veja o exemplo abaixo:

if (!@mysql_connect ("localhost", "usuário", "senha")) throw new Exception("Não foi possível conectar ao banco de dados");

Obs.: Podemos usar o operador de supressão (@) de erros para evitar que sejam exibidas as mensagens de erro padrão do PHP.

   1. Introdução
   2. Situações de possíveis erros
   3. Preparando seu código para as exceções
   4. Estendendo e especificando exceções
   5. Um código básico com tratamento de erros
   6. Resumindo

Servidor LAMP + PHPMyAdmin + Webalizer

Vulnerabilidade em formulário PHP

Dados sensíveis em arquivos com extensão .inc

Criptografando mensagens com PHP

Pentesting on PHP apps: XSS

Instalações PHP não seguras

#1 Comentário enviado por matux em 22/01/2009 - 16:46h
Bom Artigo, com certeza muito útil.
Já vou fazer uns testes!
Parabéns!
#2 Comentário enviado por luizhacker em 22/01/2009 - 21:35h
Complementando...

Não é preciso necessariamente que para exibir informações através do objeto de exceção você digite $e->__toString(), pois o métodos especial __toString() é executado automaticamente quando o objeto é requisitado como string, ou seja, você só precisará indicar o próprio objeto. Veja:

echo nl2br("<b>{$e->getMessage()}</b>\n<br />Detalhes:\n$e"); //Exibir string contendo informações sobre a exceção

Um abraço!
#3 Comentário enviado por renato.leite em 23/01/2009 - 10:35h
Otimo artigo, ajuda bastante...
#5 Comentário enviado por everton3x em 29/01/2009 - 17:14h
Muito bom artigo!

Saiu da mesmisse de "como conectar ao banco de dados" ou de "como manipular arquivos com PHP".

Contribuir com comentário

Entre na sua conta para comentar.