Hola, lo que ocurre es que tengo una calculadora y se me pide que controle dos excepciones que son: 1. Cuando se ingresa un dato que no es un numero, 2. Cuando se hace la division por cero.
Las excepciones deben estar en una clase aparte, y ahi esta el problema no se como hacerlo, no se que va en el Try ... He intentado varias cosas pero no me resultan, agradeceria que me guiaran en esto
Esto es lo que llevo:
En package Principal
public class Principal {
public static void main(String[] args) {
Vista vista = new Vista();
Modelo modelo = new Modelo();
Controlador controla = new Controlador(vista, modelo);
controla.Iniciar();
vista.setVisible(true);
}
}
En package Modelo
public class Modelo {
private double dato1 = 0;
private double dato2 = 0;
private String operador = "";
private double total = 0;
public double getDato1() {
return dato1;
}
public void setDato1(double dato1) {
this.dato1 = dato1;
}
public double getDato2() {
return dato2;
}
public void setDato2(double dato2) {
this.dato2 = dato2;
}
public String getOperador() {
return operador;
}
public void setOperador(String operador) {
this.operador = operador;
}
public double getTotal() {
return total;
}
public void setTotal(double total) {
this.total = total;
}
public double Operacion(){
if (operador.equals("+")) {
return total=dato1+dato2;
}
if (operador.equals("-")) {
return total=dato1-dato2;
}
if (operador.equals("x")) {
return total=dato1*dato2;
}
if (operador.equals("/")) {
return total=dato1/dato2;
}
return 0;
}
}
En package Controlador
public class Controlador implements ActionListener{
Modelo modelo = new Modelo();
Vista vista = new Vista();
public Controlador(){}
public Controlador(Vista vista, Modelo modelo) {
this.vista= vista;
this.modelo = modelo;
this.vista.suma.addActionListener(this);
this.vista.resta.addActionListener(this);
this.vista.multiplicacion.addActionListener(this);
this.vista.division.addActionListener(this);
this.vista.borrar.addActionListener(this);
this.vista.salir.addActionListener(this);
}
public void Iniciar(){
vista.setTitle("Calculadora 100% real no Feik");
vista.setLocationRelativeTo(null);
vista.txt1.setText(String.valueOf(modelo.getDato1()));
vista.txt2.setText(String.valueOf(modelo.getDato2()));
vista.resultado.setText(String.valueOf(modelo.getOperador()));
}
@Override
public void actionPerformed(ActionEvent e) {
modelo.setDato1(Double.parseDouble(vista.txt1.getText()));
modelo.setDato2(Double.parseDouble(vista.txt2.getText()));
if (e.getSource() == vista.suma) {
modelo.setOperador("+");
}
if (e.getSource() == vista.resta) {
modelo.setOperador("-");
}
if (e.getSource() == vista.multiplicacion) {
modelo.setOperador("x");
}
if (e.getSource() == vista.division) {
modelo.setOperador("/");
}
if (e.getSource() == vista.borrar) {
vista.txt1.setText("0.0");
vista.txt2.setText("0.0");
vista.resultado.setText("0.0");
}
if (e.getSource() == vista.salir) {
System.exit(0);
}
vista.resultado.setText(String.valueOf(modelo.Operacion()));
}
}
Y la parte visual consta de Tres textField, seis Buttoms (suma, resta. multiplicacion, division, borrar, salir)