2
respostas

Importância do Checked e Unchecked, meu entendimento esta correto?

Só para saber se a minha noção de importância está correta.

As exceções do tipo checked se tornam necessárias em situações onde ela é crucial para o funcionamento do método e tratamento da exceção, como por exemplo a situação exposta pelo professor.

Em um método como o deposita, onde eu tenho situações que impossibilitam eu o fazer como por exemplo, valores negativos, depósitos fora de horário, depósitos feito na sexta feira e só cairá na conta na segunda, não podem de forma alguma não serem lançadas e tratadas, pois afetam diretamente a segurança, credibilidade e funcionalidade do sistema.

Já o Unchecked, seria algo mais " leve ", o programador pode tratá-la ou não, o impacto dela não é tão crucial para o sistema.

Visto que em um ambiente de trabalho onde outros programadores podem passar a utilizar os métodos essa preocupação se torna ainda mais relevante.

Me corrijam se eu estiver equivocado :)

2 respostas

Olá Luan.

Seu raciocínio sobre o tema está bem legal.

Mas deixo uma ressalva pra parte do Unchecked. Eu não diria que está relacionado ao impacto ser crucial ou não. O fato é que a exception, quebra o fluxo do seu código. Se não for tratado, o sistema pode não ter o funcionamento adequado, ou até mesmo quebrar o sistema, seja essa exception checked ou unchecked.

Outro ponto sobre esse assunto, é que se perguntar pra diversos devs, o que acham, vai ouvir diversos pontos de vista diferentes (é um bom exercício ouvir esses pontos de vista e incorporar ao seu leque de conhecimento)

Por exemplo, o critério que eu uso pra definir se crio uma exception checked ou unchecked é o seguinte:

Se a exceção poderia ser evitada com uma simples verificação de parâmetros, eu lanço uma unchecked. Por exemplo, um método que recebe um int e só aceita números positivos. É bem simples pra quem está invocando o método, verificar se o número é negativo ou não. Nesse caso, lanço uma exceção unchecked.

Se a exceção ocorre em pontos que não temos muito controle, lanço checked. Considere um método que faz uma conexão com um sistema externo, como um banco de dados ou um web service, por exemplo. Mesmo que o método receba os parâmetros certos, ainda podem acontecer erros de conexão, o serviço chamado pode estar fora do ar bem naquele instante. Nesse caso, lanço um checked, pra que fique claro pra quem estiver chamando o método que pode acontecer uma situação excepcional que não podemos prever.

Show de bola Eric,

Realmente é bom ouvir a opinião de outros colegas, nunca perdemos nada em aprender mais.

E os seu ponto de vista é interessante, muito obrigado por compartilhar.

Vlw.