Java, exercício de análise
assunto: excepções
pergunta: qual o output do seguinte:
package recursopa2; class InteiroSomaRaizesQ { static private double somaRaizesQuadradas = 0; private double n; public InteiroSomaRaizesQ(String n) throws Exception { try { try { this.n = Double.parseDouble(n); //Double.parseDouble, se for bem formado do tipo 4.0 } catch (NumberFormatException e) { //NumberFormatException, como é o caso de A.0 return; } if (this.n < 0) { throw new Exception(); } somaRaizesQuadradas += Math.sqrt(this.n); } finally { System.out.print("f1 "); //acontece sempre quer o if corra bem quer corra mal } } public static void main2(String[] args) { System.out.print("m1 "); //saida: m1 try { new InteiroSomaRaizesQ("4.0"); //somaRaizesQuadradas = 2 //saida: f1, correu bem passa ao seguinte new InteiroSomaRaizesQ("A.0"); //saida: f1, termina em paz new InteiroSomaRaizesQ("9.0"); //somaRaizesQuadradas = 2+3 //saida: f1, correu bem passa ao seguinte new InteiroSomaRaizesQ("-4.0"); //acontece throw new Exception(); //saida: f1, mas correu mal, //não faço mais nada no try new InteiroSomaRaizesQ("9"); } catch (Exception e) { System.out.print("e1 "); //saida: e1 return; } finally { System.out.print("f2: " + somaRaizesQuadradas); //saida: f2 //saida: 5 } } } //para testar public class main { public static void main(String[] args) { InteiroSomaRaizesQ.main2(args); } }
Tags : java, Programação avançada
0 thoughts on “Java, exercício de análise”