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

certificacao-java-excecoes section 4 exercise 11

Nesse caso o compilador aceita por não saber o valor do booleano, pois ele pode sofrer alteração, seria isto?

6 respostas

Oi Thiago, acho que não entendi sua dúvida.. Ele compila pq todo o código é válido... atribui um valor boolean a variável booleana, lança runtimeexception e não faz try catch etc...

acho que não fui bem claro na pergunta, a dúvida é: no exercício 9 ele não compila devido System.out.println("f"); nunca ser executado, porque isso não ocorre aqui no exercicio 11 sendo que sempre será lançada a exception pois o if sempre será true;

solução!

Aí é que entra o detalhe.. vc sabe que sempre será lançada a exception,mas o compilador só ler o if.. if é condicional, então talvez o bloco dele não seja executado.

Então, essa é a confusão que faço, sempre acho que nesse caso devido a variável local ter sido inicializada com true, eu sempre tenho a impressão que o compilador vai validar isso, e foi o que eu quis dizer na primeira pergunta, como a variável local não é final o compilador subentendi que ela pode sofrer alteração antes de fazer a verificação do if, por isso o compilador não da erro na compilação correto?

O interessante nesse caso, é que, mesmo se fosse final, vc receberia um warning, mas compila :(.

Alberto, vlw de mais pela atenção, dúvidas solucionadas, show de bola.