21 de dezembro
Dicas
63 visualizações

Exceções úteis e amigáveis ao usuário

Exceções são classes utilizadas convencionalmente na programação orientada a objetos como o meio mais correto para um sistema controlar anomalias, informando falhas recuperáveis durante operações. Espera-se que todas as exceções possíveis sejam conhecidas e tratadas em código para retornar respostas que o usuário entenda, ou mesmo tomar providências sem intervenção do usuário. É possível criar exceções para sua loja virtual, por exemplo:

O que é uma exceção?

Uma condição anormal passível de recuperação.

Quais casos de uso de uma Exceção?

Criamos uma classe de exceção chamada ProductUnavailableException que o sistema emite (throw) quando um cliente tenta comprar um produto fora de estoque. O próprio sistema deve prever a emissão dessa exceção dentro de um bloco de código definido (try) e toma as providências necessárias em um bloco exclusivo (catch), providênciais tais como o retorno com a notificação por mensagem “Fora de estoque”, a oferta de outro produto, ou o direcionamento para uma lista de espera.

Qual tipo de problema o mecanismo de exceções resolve?

Condição não especificada que leva o programa a um comportamento não esperado.

Como uma exceção pode ser detectada?

dentro do bloco try.

Como uma exceção pode ser tratada?

throw (lançamento) de uma instancia de um tipo da exceção no bloco try.

Como uma exceção pode ser tratada?

Dentro dos blocos catch e finally.

Se um método lança(throw) uma exceção dentro de um bloco(try)  e nenhum ponto do sistema trata (catch), o que acontece?

O programa é terminado com uma mensagem padrão da linguagem.

Por que vejo tantos erros em inglês?

Ocorre por que a programação não foi realizada adequadamente para o correto tratamento de falhas.  Importante converter erros do sistema em notificações intuitivas, de forma clara, de modo que o usuário entenda em seu idioma o que e por que ocorreu.

Justificativa

Em suma, é preciso que as exceções do sistema sejam lançadas em pontos estratégicos nos métodos e sejam tratadas em um ponto central. Essa abordagem é seguida por frameworks padronizados como Laravel,
que utiliza um Handler por onde passam todas as exceções lançadas no sistema, criando, assim, um ponto de controle que facilita a manutenção de emergência.

Criar exceções específicas para cada erro não é apenas uma convenção estética: possibilita diferentes ações de contingência, esclarece diferentes níveis de controle: isso definitivamente agrega coesão e, consequentemente, qualidade ao código.

Um pouco sobre o autor

Matteus Barbosa - Desenvolvedor Web
Trabalho como Desenvolvedor web, no regime MEI PJ (Pessoa Jurídica) seguindo preceitos da legalidade. Para saber da minha experiência, acesse meu Currículo, meu Portfólio, a relação de Referências de Clientes ou ainda a Lista de Serviços. As propostas de serviço são iniciadas com conversas informais, seguidas da coleta de requisitos, elaboração do cronograma e por fim a proposta de orçamento. Todas as etapas são acompanhados de perto via ferramenta online e videoconferências. Os pagamentos são registrados com entrega de notas fiscais. Presto serviços de projeto, desenvolvimento e manutenção de sistemas baseados nos mais diversos frameworks.