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 : ,

0 thoughts on “Java, exercício de análise”

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.