[Resolvido]Divisao por 0 Fazer Validação

Boa noite galera to com uma duvida,
to fazendo uma calculadora e ja fiz todas as validaçoes ta tudo funcioando
mas a seguinte Duvisa surgiu tem como Refatorar ela pra eu Fazer um Metodo
validacao () {
if ( y <= 0) …

e ir implementando nos metodos abaixo ?
olha o codigo ae [code]
import javax.swing.JOptionPane;

public class Divisao {
public void validaçao() {
}

public long divisao(long x, long y) {
    if (y &lt;= 0) {

        JOptionPane.showMessageDialog(null, &quot;Divisao Invalida&quot;);
        System.exit(0);
        return 0;
    }
    return x / y;
}

public double divisao(double x, double y) {
    if (y &lt;= 0) {
        JOptionPane.showMessageDialog(null, &quot;Divisao Invalida&quot;);
        System.exit(0);
        return 0;
    }
    return x / y;
}

public float divisao(float x, float y) {
    if (y &lt;= 0) {
        JOptionPane.showMessageDialog(null, &quot;Divisao Invalida&quot;);
        System.exit(0);
        return 0;
    }
    return x / y;
}

}
[/code]

Obrigado,

public long validacao () {
		if (y &lt;=0 ) {
			
			JOptionPane.showMessageDialog(null, &quot;Divisao invalida&quot;);
		return 0;
	}

queria fazer uma validação so e implmentar

public float divisao(float x, float y)
 {
validacao();
return x / y;
}

Se e que me intendem,
se eu faço a validaçaõ desse jeito e implemento nos metodos ,
toda vez qe eu vou fazer uma operação valida ela da as menssagens de erro,
e se tiver outra operaçao ela da o resultado e a menssagem de erro
Abçs

Olá.

Amigo, primeira coisa a observar é que não se deve impedir divisão por número MENOR OU IGUAL a Zero e sim apenas IGUAL a Zero. Divisão por números menores que Zero são perfeitamente possíveis.

Agora, como essa validação deve se comportar vai depender de como você fez nos outro métodos (adição, subtração e multiplicação).

Sim entendi mas o qUE eu não to conseguindo fazer e
Que quando eu crio um método de validação e implemento nos outros métodos
Mesmo qUE eu faça uma operação válida ele aparece a tela de erros.
E depois imprime o resultado.
Isso que não to entendo ao fazer RS.
Abçs obrigado

Dá pra fazer assim:

[code]public static boolean validaDivisor(long num){
if(num == 0){
JOptionPane.showMessageDialog(null, “Divisor é Zero!”);
return false;
} else {
return true;
}
}

public float divisao(float x, float y)
{
//Para tipos diferentes de long precisará de cast
return validaDivisor((long) y) ? (x / y) : 0;
}[/code]

sera que usar um try cath pegando ArithmeticException seria uma boa prática ?

ou até mesmo criar uma classe que extendesse ArithmeticException ?

o que acha ?

[quote=douglaskd]sera que usar um try cath pegando ArithmeticException seria uma boa prática ?

ou até mesmo criar uma classe que extendesse ArithmeticException ?

o que acha ?[/quote]

Bem lembrado… é uma boa também.

Vou testar quando chegar em casa.
RS brigado pela aJudá assim qe eu terminar posto o resultado
Obrigado novamente