O tratamento de exceções é uma forma muito útil de gerenciar os possíveis erros previamente identificados na utilização do seu sistema, fazendo a lógica de funcionamento de uma rotina não ser comprometida caso apresente algum parâmetro não aceito para a continuidade correta do programa.
throw – Dispara uma Exceção
catch – Pega uma Exceção que tenha sido disparada
try – Delimitador do código que pode conter um gatilho que dispara Exceções
Isso tá muito confuso, não?
Que nada! Vamos ver agora o exemplo prático!
Destrinchando o código!
A lógica é a seguinte: Há um concurso e só deve participar quem possui 18 anos ou mais, logo, identificamos um possível erro caso algum participante menor de idade tente concorrer. O sistema deve estar preparado para tratar esta exceção sem que isto afete a linearidade do nosso código. Sendo assim, disparamos uma exceção que “diz” ao PHP que uma das regras de funcionamento do sistema não foi respeitada.
Criei uma função chamada Concurso, que recebe como parâmetro o Nome e a Idade do participante. Caso a Idade seja menor que 18, é disparada uma exceção utilizando a palavra reservada throw.
Exception é um modelo de classe do PHP 5 que trata exclusivamente de exceções, por isso utilizamos a frase “throw new Exception”, seguido entre parênteses da mensagem personalizada que representa a exceção.
* Para saber mais sobre a palavra reservada new, clique aqui
Os principais métodos do objeto Exception, são:
getMessage() – Mensagem da exceção
getCode() – Código da exceção
getFile() – Arquivo gerador da exceção
Como sabemos que a função Concurso pode disparar uma exceção, devemos utilizá-la dentro do bloco try. Para cada bloco try deve existir um bloco catch, que tem o objetivo de tratar a exceção disparada (objeto Exception) e “jogar” para uma variável de nossa escolha, em nosso caso, a variável $erro.
No caso de uma exceção ser disparada dentro de um bloco try, o código é interrompido imediatamente e o bloco catch entra em ação, transformando a variável $erro em uma instância do objeto Exception.
Legal, né?
O conteúdo do código de exemplo é uma utilização extremamente simples e para fins didáticos do uso de exceções. Por se tratar de um objeto, a classe Exception pode ser herdada e ter variações para tratamentos distintos, bem como uso aninhado de catchs (exceções disparando exceções), entre outras possibilidades.
Tente utilizar o conhecimento adquirido aqui para fazer uma validação de formulário, que é um exemplo igualmente simples e de fácil execução.
Para saber mais sobre o assunto, acesse o manual de Exceções do PHP.net clicando aqui
por: Vinícius Vinhas
em: Guia do PHP
Nenhum comentário:
Postar um comentário