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?
public class Teste {
public static void main( String args[] ) {
boolean b = true;
try {
if(b)
throw new Exception(); // O que significa este comando??????
System.out.print( "try " );
} catch( Exception e ) {
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.
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.
Ex:
boolean b = true;
try{
if(b){
throw new Exception();
}
}catch(Exception e){
e.printStackTrace();
}finally{
System.out.println("Finally");
}
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.
[code] public class Teste {
public static void main( String args[] ) {
boolean b = true;
try {
if(b)
throw new Exception(); // O que significa este comando???
System.out.print( "try " );
} catch( Exception e ) {
System.out.print( "catch " );
[code] public class Teste {
public static void main( String args[] ) {
boolean b = true;
try {
if(b)
throw new Exception(); // O que significa este comando???
System.out.print( "try " );
} catch( Exception e ) {
System.out.print( "catch " );