David Castilho
EQUIPE
25/10/2025 • 00:28
Gabarito: a) A compilação falha.
No código apresentado, a variável 'x' é declarada dentro do bloco try, portanto seu escopo é limitado a esse bloco. Isso significa que a variável 'x' não é visível nem acessível dentro dos blocos catch e finally.
No bloco catch, há uma tentativa de incrementar 'x' com 'x++', mas como 'x' não está declarado nesse escopo, o compilador gera um erro de compilação por variável não reconhecida.
Da mesma forma, no bloco finally, há uma tentativa de imprimir e incrementar 'x' com 'System.out.println("ano = " + x++);', mas 'x' também não é visível nesse escopo, causando outro erro de compilação.
Para que o código compile corretamente, a variável 'x' deveria ser declarada antes do bloco try, garantindo que ela esteja acessível em todos os blocos try, catch e finally.
Portanto, a resposta correta é que a compilação falha devido ao uso indevido da variável 'x' fora do seu escopo de declaração.
No código apresentado, a variável 'x' é declarada dentro do bloco try, portanto seu escopo é limitado a esse bloco. Isso significa que a variável 'x' não é visível nem acessível dentro dos blocos catch e finally.
No bloco catch, há uma tentativa de incrementar 'x' com 'x++', mas como 'x' não está declarado nesse escopo, o compilador gera um erro de compilação por variável não reconhecida.
Da mesma forma, no bloco finally, há uma tentativa de imprimir e incrementar 'x' com 'System.out.println("ano = " + x++);', mas 'x' também não é visível nesse escopo, causando outro erro de compilação.
Para que o código compile corretamente, a variável 'x' deveria ser declarada antes do bloco try, garantindo que ela esteja acessível em todos os blocos try, catch e finally.
Portanto, a resposta correta é que a compilação falha devido ao uso indevido da variável 'x' fora do seu escopo de declaração.