Exemplo de tratamento de exeções [resolvido]

3 respostas
juninhoall

Boa tarde eu fiz um exemplo de tratamento de exeção e gostaria que fosse avaliado, se está de forma coerente ou não,
segue o código
package br.org.catolicasc.luiz.almeida.calculadora.test;

import br.org.catolicasc.luiz.almeida.calculadora.aplicativo.Calculadora;

/**
 *
 * @author Luiz Almeida Júnior
 */
public class ExecoesExemplo {

    /**
     * Classe de testes 
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Calculadora calc = new Calculadora(2, 1);

        calc.divisao();
        calc.multiplicacao();
        System.out.println(calc.toString());
    }

}
package br.org.catolicasc.luiz.almeida.calculadora.aplicativo;

/**
 * Classe de regras 
 *
 * @author Luiz Almeida Júnior
 */
public class Calculadora {

    private int primeiroNumero;
    private int segundoNumero;
    private double resposta;

    public Calculadora(int primeiroNumero, int segundoNumero) {
        this.primeiroNumero = primeiroNumero;
        this.segundoNumero = segundoNumero;
        // this.resposta = resposta;

    }

    public int getPrimeiroNumero() {
        return primeiroNumero;
    }

    public void setPrimeiroNumero(int primeiroNumero) {
        this.primeiroNumero = primeiroNumero;
    }

    public int getSegundoNumero() {
        return segundoNumero;
    }

    public void setSegundoNumero(int segundoNumero) {
        this.segundoNumero = segundoNumero;
    }

    public double getResposta() {
        return resposta;
    }

    public void setResposta(double resposta) {
        this.resposta = resposta;
    }

    public double multiplicacao() {
        return resposta = primeiroNumero * segundoNumero;
    }

    public double divisao() {
        if (segundoNumero == 0) {
            throw new ArithmeticException("Programa não aceita divisão por zero");
        }
        return resposta = primeiroNumero / segundoNumero;

    }

    public double adicao() {
        return resposta = primeiroNumero + segundoNumero;
    }

    public double subtracao() {
        return resposta = primeiroNumero - segundoNumero;

    }

    @Override
    public String toString() {
        return "Primeiro número.: " + primeiroNumero
                + "\nSegundo número..: " + segundoNumero
                + "\nResposta........: " + resposta;
    }

}
O tratamento está no método de divisão, ele está coerente? estou fazendo de forma padronizada ? Grato pela ajuda que o forum está me dando.

3 Respostas

juninhoall
juninhoall:
Boa tarde eu fiz um exemplo de tratamento de exeção e gostaria que fosse avaliado, se está de forma coerente ou não, segue o código package br.org.catolicasc.luiz.almeida.calculadora.test;

import br.org.catolicasc.luiz.almeida.calculadora.aplicativo.Calculadora;

/**
 *
 * @author Luiz Almeida Júnior
 */
public class ExecoesExemplo {

    /**
     * Classe de testes 
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Calculadora calc = new Calculadora(2, 1);

        calc.divisao();
        calc.multiplicacao();
        System.out.println(calc.toString());
    }

}
package br.org.catolicasc.luiz.almeida.calculadora.aplicativo;

/**
 * Classe de regras 
 *
 * @author Luiz Almeida Júnior
 */
public class Calculadora {

    private int primeiroNumero;
    private int segundoNumero;
    private double resposta;

    public Calculadora(int primeiroNumero, int segundoNumero) {
        this.primeiroNumero = primeiroNumero;
        this.segundoNumero = segundoNumero;
        // this.resposta = resposta;

    }

    public int getPrimeiroNumero() {
        return primeiroNumero;
    }

    public void setPrimeiroNumero(int primeiroNumero) {
        this.primeiroNumero = primeiroNumero;
    }

    public int getSegundoNumero() {
        return segundoNumero;
    }

    public void setSegundoNumero(int segundoNumero) {
        this.segundoNumero = segundoNumero;
    }

    public double getResposta() {
        return resposta;
    }

    public void setResposta(double resposta) {
        this.resposta = resposta;
    }

    public double multiplicacao() {
        return resposta = primeiroNumero * segundoNumero;
    }

    public double divisao() {
        if (segundoNumero == 0) {
            throw new ArithmeticException("Programa não aceita divisão por zero");
        }
        return resposta = primeiroNumero / segundoNumero;

    }

    public double adicao() {
        return resposta = primeiroNumero + segundoNumero;
    }

    public double subtracao() {
        return resposta = primeiroNumero - segundoNumero;

    }

    @Override
    public String toString() {
        return "Primeiro número.: " + primeiroNumero
                + "\nSegundo número..: " + segundoNumero
                + "\nResposta........: " + resposta;
    }

}
O tratamento está no método de divisão, ele está coerente? estou fazendo de forma padronizada ? Grato pela ajuda que o forum está me dando.

Essa implementação é valida ?

public double divisao() {
        try {
            return resposta = primeiroNumero / segundoNumero;
        } catch (Exception e) {
            if (segundoNumero == 0) {
                throw new ArithmeticException("Programa não aceita divisão por zero");

            }

        }
        return 0;
    }
B

O seu catch poderia ser do tipo ArithmeticException, não…?
Ou simplesmente, nem deixa fazer a divisão se o segundo número for 0.

juninhoall

bomba544:
O seu catch poderia ser do tipo ArithmeticException, não…?
Ou simplesmente, nem deixa fazer a divisão se o segundo número for 0.

grato pela ajuda

Criado 14 de maio de 2014
Ultima resposta 20 de mai. de 2014
Respostas 3
Participantes 2