Vantagens dos dois casos? unchecked e checked
Vantagens dos dois casos? unchecked e checked
Oi Jofre, tudo bem?
Basicamente, você vai usar querer usar unchecked para erros irrecuperáveis como o NullPointerException, onde você não quer dar a chance para o usuário se recuperar. Em outras palavras, a única saída para essa situação é mostrar uma mensagem de erro para o usuário informando de o aplicativo encontrou algum problema. Já o checked você usa quando você quer dar uma chance para o usuário tratar o erro e se recuperar. Dessa forma, quem chamou o método vai ser obrigado a fazer o try-catch e terá a chance de se recuperar do erro.
Isso que eu escrevi está de acordo com a documentação Java: unchecked para erros irrecuperáveis onde o crash do sistema é intencional (caso uma Exception ocorra) e checked caso seja possível se recuperar do erro. Porém de acordo com Robert Martin, autor do Clean Code e do Manifesto Ágil: embora usar checked em algumas situações tenha suas vantagens, o uso dele em excesso deve ser evitado já que isso polui o código e pode quebrar o encapsulamento.
Recomendo ler esses dois artigos, o primeiro da Caelum e outro caso seu inglês esteja afiado:
https://blog.caelum.com.br/lidando-com-exceptions/
https://ahmadatwi.me/2017/02/05/how-to-handle-java-exceptions-in-clean-code-part-2/
Se ficou qualquer dúvida, é só avisar!
Bons estudos!
Ok, obrigado pela ajuda :)