2
respostas

Vantagens e Desvantagens

1-Queria saber a diferença do tipo checked, e unchecked, e em que casos cada uma delas deve ser usada por exemplo?

2-Quais as vantagens de uma em relação a outra

2 respostas

Cara uma tendência das novas Libs é lançar exceções unchecked, antigamente tudo era checked mas isso vem mudando.

No livro Robert C Martin - Clean Cod ele diz:

"As exceções verificadas podem às vezes ser úteis se você estiver criando uma biblioteca crítica: é preciso capturá-las. Mas no desenvolvimento geral de aplicativo, os custos da dependência superam as vantagens."

Segundo a sun:

https://docs.oracle.com/javase/tutorial/essential/exceptions/runtime.html

"If a client can reasonably be expected to recover from an exception, make it a checked exception. If a client cannot do anything to recover from the exception, make it an unchecked exception."

Ou seja se o cliente puder se recuperar de uma exceção, use Checked. Se ele não puder se recuperar use Unchecked.

Exemplo prático? Para ser sincero eu nunca tive a necessidade de criar uma Exceção checked, a não ser quando estava estudando, já utilizei métodos que lançam elas dai te obriga a tratar ou passar para frente, como por exemplo quando você tenta abrir um arquivo:

new java.io.FileInputStream("arquivo.txt")

Olá Guilherme.

De forma resumida, as exceções checked são aquelas as quais você é obrigado a tratá-las, seja relançando com um throws ou tratando com um bloco try-catch. Já as unchecked, são exceções que podem ser lançadas, mas não exigem o tratamento ou relançamento.

Um exemplo comum de unchecked é a NullPointerException. Imagine se todo lugar que pudesse acontecer uma NullPointerException você tivesse que colocar um try/catch ou relançá-la. Isso seria inviável.

Nesse post (https://cursos.alura.com.br/forum/topico-duvida-conceitual-sobre-exceptions-43137), há explicações mais amplas que podem te ajudar a entender.