Olá desenvolvedores, tudo bem com vocês? Continuaremos hoje nossa conversa sobre tratamento de erros e exceções em Java. Dessa forma iremos abordar os fatores internos e externos que levam eles.

Iniciamos esta sequência de tutorias conceituando exceções. Assim, você já sabe que exceções são erros que podem ocorrer durante a execução de um programa. E que tais erros podem ser de lógica, conversões, acessos entre outros. Agora você irá aprender que podemos separar estes erros em dois grupos.

Talvez o fator interno seja o mais comum quando se trata de erros em um sistema, eles são caracterizados por problemas do próprio código. Obviamente estes erros podem ser facilmente corrigidos pela equipe de desenvolvimento. Mas atente-se, desde que o desenvolvedor trate as exceções de forma correta. Dependendo do tipo de exceção, uma versão nova do sistema poderá ser lançada com os bugs corrigidos.

Aliás, experienciamos esta realidade em nosso dia a dia com os aplicativos. Vez ou outra nos vemos “obrigados” a atualizar para uma nova versão. Esta nova versão normalmente abrange dois propósitos, implementação de melhorias ou correção de bugs.

As melhorias englobam desde a adição de novas funcionalidades, ou mesmo uma melhoria na usabilidade até uma reformulação no design do app. Ao passo que a correção de bugs, objetiva corrigir algo que na versão anterior não funcionava muito bem. Mas a correção pode ser também de rota, como uma melhoria no fluxo de como usuário interage com a aplicação.

Por outro lado, existem os erros motivados por fatores externos. E quanto a estes os desenvolvedores bem como toda a equipe não possuem muito controle. Dessa forma e do mesmo modo cabe a eles informar ao usuário, de um modo que seja informativo e realmente útil para ele.

FATORES EXTERNOS

Vamos conhecer agora alguns fatores externos que podem lançar exceções e incorreren em uma parada no sistema. E cuja solução imediata não está ao alcance da equipe de desenvolvimento, são eles:

  • Tentar abrir um arquivo que não existe. Arquivo este que pode ter sido apagado por uma formatação ou mesmo por um vírus.
  • Tentar fazer uma consulta a um banco de dados remoto que não está disponível. Por exemplo, tentar acessar uma base de dados em um servidor indisponível porque a rede onde ele se encontra caiu. Ou como tentar acessar um servidor no momento em que uma migração esteja ocorrendo.
  • Tentar escrever algo em um arquivo sobre o qual não tem permissão de escrita. Neste caso, trata-se da tentativa de manipular um arquivo, cujo acesso é restrito ao administrador ou a um grupo específico de pessoas.
  • Tentar se conectar a um servidor inexistente ou fora de serviço. Semelhante a tentativa de acesso a base de dados que esteja indisponível. Os motivos podem ser tentativa de se conectar a uma rede indisponível. Ou porque a equipe de suporte pode estar rodando alguma rotina, ou ainda uma virada no server pode estar ocorrendo entre outros fatores.

Porém, neste caso há que se levar em consideração o tipo de erro e se vale realmente incomodar o usuário. Porque talvez um “erro” que não possa ser solucionado de imediato pela equipe de desenvolvimento o possa ser pela equipe de infraestrutura. Ou seja, cada decisão deve ser pensada e planejada tendo sempre em mente que o objetivo é onerar minimamente o usuário e/ou seu negócio.

FATORES INTERNOS

Então, como falamos, alguns erros podem ser motivados por fatores internos. E neste caso, a equipe de desenvolvimento tem total controle e pode rapidamente providenciar uma solução. Conheça alguns destes motivos

  • Tentar manipular um objeto que está com valor nulo, erro que este que gera o NullPointerException. Que como você já sabe, é um tipo de exceção que é lançada quando tentamos manipular um objeto nulo.
  • Dividir um número por zero. Aliás, este é um teste que você pode fazer. Crie um algoritmo bem simples só para dividir um número por zero e veja o que acontece.
  • Tentar manipular um tipo de dado como se fosse outro. Trata-se da tentativa de manipulação de elementos que são incompatíveis. Por exemplo, você tem um objeto pessoa e tenta manipulá-lo e/ou convertê-lo em um objeto do tipo carro. Não vai rolar.
  • Tentar utilizar um método ou classe inexistentes, o que por sinal acontece com frequência quando se utiliza frameworks e bibliotecas de terceiros.

Durante a implantação do projeto alguém pode fazer alguma alteração que poderá quebrar o sistema. Ou quando da execução do sistema ocorrer a tentativa de chamar um método ou uma classe que não existe.

EM POUCAS PALAVRAS

No decorrer desta série sobre tratamento de erros e exceções vamos aprender como corrigir alguns destes erros. Mas de antemão você agora sabe que alguns poderão ser corrigidos de imediato pela equipe, antes mesmo de ser colocado em produção. Aliás, é para isso que existem os testes, para que a equipe possa corrigir os problemas, e subir pra produção um sistema consistente. Mas isto é assunto para um outro momento.

Espero que tenham gostado e nos vemos no próximo tutorial. Visite o <a href=”
https://github.com/JDev-Treinamento“>GitHub da JDev Treinamento</a>.