Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Laravel 5

Exceções no Laravel

Read Time:5 minsLanguages:

Portuguese (Português) translation by Erick Patrick (you can also view the original English article)

Como desenvolvedor PHP, talvez use exceções por elas permitirem que você saiba quando algo errado aconteceu ou o quando o usuário agiu de forma não esperada (como tentar dividir números por zero) em sua aplicação. Sem o uso de exceções, sua aplicação acabaria apresentando erros indesejáveis e seria muito mais difícil de depurar. Também é importante pausar a execução e realizar outra ação em caso de exceção.

Exceções são simples de entender e facilitarão o progresso do seu desenvolvimento. Quando aprender a usar exceções, verá que elas serão algo comum no seu desenvolvimento.

O Que É uma Exceção?

Acredito que a melhor definição para exceções foi dita pelo Martin Fowler:

Exceções sinalizam algo fora do comportamento esperado de um dado trecho de código.

Mais precisamente, uma exceção é um evento que acontece durante a execução de um programa, quebrando o fluxo normal das instruções do mesmo. Quando você usa uma exceção (criando um objeto e passando para o sistema em execução) através do throw, o sistema irá capturá-la (através do catch) e buscará o manipulador de exceção adequado para ela e retornará a mensagem correta.

Quando Precisamos Usar Exceções?

Use exceções quando se deparar com circunstâncias excepcionais que previnam a execução normal do sistema. Usamos exceções apenas quando o sistema não for capaz de determinar o que aconteceu. Martin Fowler acredita que "se uma falha é um comportamento esperado, não se deve usar exceção para ela". Isso significa que só deve, realmente, usar exceções quando não puder determinar o erro. Exceções deveriam ser usadas apenas em casos raros.

Nota: Exceções não são boas para manipular operações lógicas.

Para um sistema que valida dados de entrada, é errado usar exceções. Primeiro, o campo de texto é algo que conhecemos e, em uma aplicação como essa, devemos reportar um conjunto de erros ao invés de um único erro. Sou dos que acreditam que não se deve usar exceções em casos onde podemos esperar por erros de validação.

Capturar uma exceção é bastante importante, já que, caso isso ocorra, o sistema resultará em um erro. A operação de captura deve ser realizada tão logo quando a exceção ocorra.

Exceções no Laravel

O Laravel usa um manipulador de exceções, que é uma classe no arquivo App\Exceptions\Handler.php. Essa classe contém dois métodos principais (o método renderHttpException, que é usado para todas exceções HTTP, como os erros 404 e 503, fica na classe pai do manipulador). O primeiro é o report, que é usado para registrar exceções ou enviá-las para um serviço externo. Eis um exemplo do método report:

O segundo é o render. O método render é responsável por converter uma dada exceção em uma resposta HTTP que deve ser enviada de volta para o navegador. Eis um exemplo do método render:

Nota: Você pode usar a propriedade $dontReport do manipulador de exceção para ignorar exceções de acordo com seus tipos.

Você pode sobrescrever os métodos de exceção do Laravel, com suas próprias exceções, dessa forma:

Isso será renderizado quando o modo de depuração estiver ativado.

Como Criar sua Prórpia Exceção no Laravel?

Talvez você tenha a necessidade de criar sua própria classe de exceção. Você precisará estender a classe base de Exceção do Laravel—criei uma classe abstrata que se comportará como a classe base para nossa classe de Exceção customizada. Crie o arquivo App/Exceptions/MyException.php:

E sua classe de Exceção:

Você pode usar a classe acima em seu código, assim:

Além da classe de Exceção padrão do Laravel, você pode usar o pacote Assertion. Ele pode ser usado como uma classe de exceção de externa, de forma a evitar enormes quantidades de blocos if em seu código.

Para instalar o pacote Assertion, você deve executar o seguinte comando:

Por exemplo, se quiser verificar o endereço de e-mail de um usuário, você pode fazer assim:

Conclusão

Independente da linguagem que você usar, é muito importante entendermos exceções, uma vez que elas ajudam a controlar o fluxo de execução de uma aplicação.

Além do mais, elas nos ajudam a registrar problemas quando eles acontecem, além de tornar a aplicação mais robusta.

Como você pode ver pelo que foi realizado nesse tutorial, o Laravel é uma framework que oferece ótimas maneiras de manipular exceções ao se criar aplicações web.

Seja o primeiro a saber sobre novas traduções–siga @tutsplus_pt no Twitter!

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.