Java, exercício análise
assunto: excepções
pergunta: qual o output do seguinte:
package recursopa2; class UmaExcepcao extends Exception { //foi definida uma excepção } class Conta { int c = 4; void f(int i) throws UmaExcepcao { if (i < c) { System.out.print(" f1"); f(++i); return; } else try { System.out.print(" f2"); if (i == c) { throw new UmaExcepcao(); } } finally { System.out.print(" f3"); } System.out.print(" f4"); } public static void main2(String[] args) { Conta c1 = new Conta(); Conta c2 = new Conta(); //não existe nenhum construtor try { c1.f(3); // saida: System.out.print(" f1"); // saida: System.out.print(" f2"); // i == c, true // lança uma excepção, throw new UmaExcepcao(); // saida: faz sempre o finally, System.out.print(" f3"); // e terminou em estado de excepção e não faz o f4, System.out.print(" m1"); c2.f(4); System.out.print(" m2"); } catch (UmaExcepcao ex1) { System.out.print(" m3"); // saida: System.out.print(" m3"); // porque apanhou uma excepção try { c1.f(5); // saida: System.out.print(" f2"); // i == c, falso // saida: System.out.print(" f3"); // saida: System.out.print(" f4"); // porque não tinha excepção } catch (UmaExcepcao ex2) { System.out.print(" m4"); } } System.out.print(" m5"); // saida: System.out.print(" m5"); // porque não tinha excepção } } //para testar public class main { public static void main(String[] args) { Conta.main2(args); } }
assunto: excepções
pergunta: qual o output do seguinte:
package recursopa2; class EstaExcepcao extends Exception { } class main { static void f() throws EstaExcepcao { try { System.out.println("Ponto 1"); throw new EstaExcepcao(); //saida: ponto 1 //System.out.println("AAAAA"); //se existir dá erro //depois do lançamento da excepção dá sempre erro } catch (EstaExcepcao e) { System.out.println("Ponto 2"); //saida: ponto 2 throw e; //vai ser relançada } finally { System.out.println("Ponto 3"); //saida: ponto 3 } //System.out.println("BBBB"); //se existice //como houve erro nunca iria ser executada, por exemplo //não havendo o throw } public static void main(String[] args) { try { f(); // f() sai em erro, vai fazer o catch System.out.println("Ponto 4"); } catch (EstaExcepcao e) { System.out.println("Ponto 5"); //saida: ponto 5 } catch (Exception e) { System.out.println("Ponto 6"); } System.out.println("Ponto 7"); //saida: ponto 5 } }
Tags : java, Programação avançada
0 thoughts on “Java, exercício análise”