Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Loperso en 18 de Febrero 2017, 18:22
-
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)
-
Buenas Loperso, he intentado compilar pero me indica que falta la clase Vista
En este curso hay algunos ejemplos de excepciones con Java http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=58&Itemid=180 entregas CU00926C y CU00927C
Supongo que debes definir una clase que extienda a la clase Exception, es decir, una excepción definida por el programador en lugar de una excepción predefinida Java
Este sería un ejemplo:
class ExcepcionDefinidaPorProgramador extends Exception {
public ExcepcionDefinidaPorProgramador(String msg){
super(msg);
}
}
class EmployeeTest {
static void employeeAge(int age) throws ExcepcionDefinidaPorProgramador{
if(age < 0)
throw new ExcepcionDefinidaPorProgramador("La edad no puede ser menor de cero");
else
System.out.println("La entrada es válida!!");
}
public static void main(String[] args) {
try {
employeeAge(-2);
}
catch (ExcepcionDefinidaPorProgramador e) {
e.printStackTrace();
}
}
}
Salu2