Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Checked VS Unchecked

Boa noite!

Ficaram claras as particularidades das exceções checked e unchecked. Mas, se ambas funcionam da mesma forma, qual a vantagem de usar checked sendo que a implantação é mais complexa?

Obrigado!

2 respostas
solução

Oi Eder!

A ideia é justamente você dar a chance de quem chama o método que pode lançar uma exception se recuperar da exceção, e fazer com que quem use o método que lança a exception trate isso em tempo de compilação (já que se voce nao usa o try-catch ele não compila o código e vc tem que no minimo por o throws, no caso das checked exceptions).

Então teria essa vantagem de ser mais dificil quem chama um método que lança uma checked exception simplesmente não tratar, já que o aviso do compilador está lá.

A ideia básica seria: se você pode se recuperar do erro, use checked exceptions, se são erros de programação, que você conseguiria resolver no código (como um NullPointerException), use unchecked exceptions.

Dentro das APIs do próprio Java temos alguns exemplos disto. Quando você tenta ler um arquivo, entre o momento que você fez seu programa e o momento que ele é executado, o arquivo pode não existir mais, por exemplo. Portanto quando você lê e escreve em arquivos, no Java, as classes podem lançam exceptions do tipo IOException.

A IOException é checked e assim você tem que escrever o try-catch pra o seu código que lê um arquivo compilar. Dessa forma você pode fazer dentro do catch algo para se recuperar do erro.

Como recomendação de leitura, deixo este artigo do blog da caelum

Espero ter ajudado, abraço!

Bastante esclarecedor! Agradeço.