Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida

O checked é mais "recomendado" a se utilizar porque nele há verificação do compilador em relação ao erro?

1 resposta
solução!

Olá Lucas.

Eu acho que a resposta dessa pergunta é um grande "depende".

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, por exemplo. Mesmo que o método receba os parâmetros corretos, ainda podem acontecer erros de conexão, o banco pode estar fora do ar. 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.

Mas é aquele negócio, esse é um assunto com bastante brecha pra debate. Há os devs que gostam de lançar apenas exceções unchecked, justamente pra não forçar que o dev que use o método faça um tratamento qualquer, só pra poder compilar o código.