packagecom.exercicio.certificacao.controledefluxo.excecao.assertiva;publicclassPlane{staticStrings="-";publicstaticvoidmain(String[]args){// ok, instancia Plane e chama s1newPlane().s1();// nesse ponto, s vai ter -cSystem.out.println(s);}voids1(){try{// s2 vai lançar execessão que será capturada no catchs2();}catch(Exceptione){// concatena c no ss+="c";}}voids2()throwsException{// chama s3 e a excessão lançada por s3 vai ser relançadas3();// daqui para baixo não será executados+="2";s3();s+="2b";}// vai lançar execessãovoids3()throwsException{thrownewException();}}
evertonsilvagomesjav
David mas pq a exceção e lançada o que tem de errado?
sech777
método s1() chama método s2(), que por sua vez chama método s3(). O método s3() lança uma exceção, mas quem a manipula é o método s1(), pois o método s2() apenas a declara. Assim, quando o método s1() manipula a exceção, à variável “s” é concatenado o literal “c”. Por fim, a saída será: -c .
evertonsilvagomesjav
Eu entendi as questões de manipulação, eu nao estou entendendo o porque da exceção, sendo que uma exceção ocorre por algo “anormal” no codigo, por isso nao to entendo esse throw new Exception() no método s3().
alberto_ribeiro
Boa tarde, então se você entendeu as chamadas, vamos lá, uma exception pode ocorrer por algo anormal, mas, você pode fazer com que seja lançado uma exceção no momento em que você necessitar, o método s3 está lançando uma exceção de propósito, sempre que chamado vai lançar…
uma exceção pode ser lançado quando você necessitar como eu disse, um exemplo imagina que você tem um método que manipula divisões de números logo se receber algum parametro com o valor 0(zero), você pode no código forçar o lançamento de uma exceção informando que o valor não pode ser zero…
evertonsilvagomesjav
Alberto acho que entendi cara o que vc falou, nesse caso nao tem algo “anormal no codigo” mas o programdor forçou que quando o método s3() for chamado uma exceção sera lançada, é isso?
alberto_ribeiro
isso mesmo…
evertonsilvagomesjav
hum entendi cara muito obrigado, agora uma aplicabilidade de se forçar uma exceção eu nunca vi por isso me veio essa duvida pq sempre usei metodos que se tivesse algo anormal gerassem uma exceção, mas muito obrigado Alberto.