Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Java parte 4 - Exercício 4 - Aula 6

Vi essa mesma dúvida postada por outro aluno, porém continuo com a mesma dúvida.

Uma das alternativas diz o seguinte: " O bloco finally é opcional quando não tem catch"

Pelo meu entendimento, quando não se tem o "catch", o finally é obrigatório. Se esse entendimento estiver correto, a resposta do exercício estaria errada.

Por favor me corrijam se estiver enganado.

Att, Fabiano

5 respostas

Boa tarde, Fabiano! Como vai?

O bloco finally é opcional em qualquer situação (usando o bloco try-catch e o try with resources). A não ser que vc esteja utilizando um try comum e não tenha declarado um catch.

Grande abraço e bons estudos!

Olá Gabriel.

Obrigado pela resposta. Mas se tivermos apenas o "try", o código não compilará, correto? Temos que ter pelo menos o "catch" ou o "finally". Faz sentido?

Valeu Fabiano

solução!

Depende, Fabiano! Vc está correto se o try utilizado for o comum. Agora, se vc estiver utilizando o try with resources o finally e o catch não são obrigatórios! Portanto, o código a seguir compilará:

try (Scanner s = new Scanner(System.in)) {
     // restante do código omitido ...            
}

Grande abraço e bons estudos!

Interessante. Sim me referia ao "try" comum. Não conhecia esse try with resources! Obrigado pela explicação. Fabiano

No try-catch comum vc estava correto no que falou. Mas se considerarmos o try with resources então a resposta da questão faz sentido.

Sempre que tiver qualquer dúvida é só mandar aqui no fórum!

Grande abraço e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software