Vantagens dos dois casos? unchecked e checked
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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 :)