Boa tarde!!!
Gostaria que alguém me ajudasse a entender este outro algoritmo!!!
No meu entender haveria de imprimir ( try , finally ) mas acabou imprimindo ( try , finally)…
acho que tem haver com este comando:
throw new Exception(); // mas não sei bem o seu significado?
publicclassTeste{publicstaticvoidmain(Stringargs[]){booleanb=true;try{if(b)thrownewException();// O que significa este comando??????System.out.print("try ");}catch(Exceptione){System.out.print("catch ");}finally{System.out.println("finally");}}}
Este código vai imprimir “catch, finally” porque no bloco try vc dispara uma exceção. Esta exceção vai ser capturada pelo bloco catch, executando o que tem em seu corpo (imprimindo “catch”). E o bloco finally é sempre executado, independentemente dele ter lançado ou não a exceção, portanto, imprime “finally”. A impressão de “try” só ocorreira se a variável b fosse falsa.
javaAurelio
O guilhermeleite esta correto !!! :!:
LPJava
ate agora n entendi o try{} catch{}! como usar alguem ai pode dar uma ajuda… pq o deitel n foi claro na explicacao…
vivi_grieco
vc coloca um bloco try catch quando o que está dentro dele pode lançar uma excessão.
só vai passar pelo catch se o que estiver dentro do try lançar a excessão.
Nesse exemplo, se o b for true, eu “chamo” a excessão. Nesse momento, o código “pula” p/ catch e tudo o q tiver dentro try depois do “throw new Exeption” não vai ser executado. Porém, independente de entrar ou não no catch, o que estiver dentro de “finally” vai ser executado.
eltonk
info_god:
Lembrando que se eu fizer isto:
publicclassTeste{publicstaticvoidmain(Stringargs[]){booleanb=true;try{if(b)thrownewException();// O que significa este comando??????System.out.print("try ");}catch(Exceptione){System.out.print("catch ");System.exit(0);}finally{System.out.println("finally");}}}
Ele não vai entrar no bloco finally e vai finalizar a aplicação.
A linha
System.exit(0);
simplesmente diz para JVM: "PARA TUDO! PARA TUDO AGORA!!!" :P
I
info_god
Lembrando que se eu fizer isto:
publicclassTeste{publicstaticvoidmain(Stringargs[]){booleanb=true;try{if(b)thrownewException();// O que significa este comando??????System.out.print("try ");}catch(Exceptione){System.out.print("catch ");System.exit(0);}finally{System.out.println("finally");}}}
Ele não vai entrar no bloco finally e vai finalizar a aplicação.