0 votos
por (20 puntos) en Java
quiero que mi codigo me diga que no puedo ingresar números y solo letras pero en la primera excepción que puse no se ejecuta dicha excepción

import java.awt.HeadlessException;  
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
public class Trabajador {

    public static void main(String[] args)  {
    
     String nom[]=new  String[5];
     String ape[]=new  String[5];
     String apem[]=new String[5];
    int otro=JOptionPane.YES_OPTION;
    double sb[]=new double[5];
    double dedu[]=new double[5];
    double du[]=new double[5];
    double remu[]=new double[5];
    double des[]=new double[5];
    double sueldo[]=new double[5];
    
    String salida="nombre\t Apellidos\t A.Materno\t Sueldo Base\t Deducciones\t Uniformes\t Remuneracion\t Despensa\t Sueldo neto\n";
    for(int i=0; i<nom.length; i++){
    
    try{
    nom[i] =(JOptionPane.showInputDialog("ingresa Nombre"));
    ape[i]=JOptionPane.showInputDialog("Ingresa Apellido Paterno");
    apem[i]=JOptionPane.showInputDialog("Ingresa Apellido Materno");
    }
    catch(HeadlessException e){JOptionPane.showMessageDialog(null,"Error de datos solo letras");}
    try{
    sb[i]=Double.parseDouble(JOptionPane.showInputDialog("ingresa el sueldo base"));
    dedu[i]=Double.parseDouble(JOptionPane.showInputDialog("ingre deducciones IMMS"));
    du[i]=Double.parseDouble(JOptionPane.showInputDialog("ingrsa deducciones uniformes"));
    }
    catch(NumberFormatException e){JOptionPane.showMessageDialog(null,"Error de datos solo numeros");}
    salida+=nom[i]+"\t"+ape[i]+"\t"+apem[i]+"\t$"+sb[i]+"\t$"+dedu[i]+"\t$"+du[i]+"\t$"+remu[i]+"\t$"+des[i]+"\t$"+sueldo[i]+"\n";
    }
    for(int i=0; i<nom.length; i++){
    sueldo[i]=sb[i]+remu[i]+des[i]-dedu[i]-du[i];
    salida+=nom[i]+"\t"+ape[i]+"\t"+apem[i]+"\t$"+sb[i]+"\t$"+dedu[i]+"\t$"+du[i]+"\t$"+remu[i]+"\t$"+des[i]+"\t$"+sueldo[i]+"\n";
    }
    double tot=0;
    for(int i=0; i<5; i++){
    tot=sueldo[i]+tot;
    }
    JTextArea sa=new JTextArea();
    sa.setText(salida);
    JOptionPane.showMessageDialog(null,sa,"Recibo",JOptionPane.INFORMATION_MESSAGE);
    JOptionPane.showMessageDialog(null,"la suma de los sueldos dan un total de:"+tot,"Recibo",JOptionPane.INFORMATION_MESSAGE);
    System.exit(0);
    
    
    }}

1 Respuesta

0 votos
por (200 puntos)

Una Solucion podria ser la siguiente 

public static void excepcion(String cadena) throws ExceptionSoloLetra{
char letra='0':
for(int i=0; i<cadena.length();i++{
letra = cadena.charrAt(i);
if(Character.isLetter(letra)){ 
String mes="ingrese solo letras\n";
throw new ExceptionComparar(mes);
}
}
}

 ese metodo le ingresas una cadena que puede ser a traves de un scanner o una variable de tipo string te la descompone en caracteres y si encuentra un numero te manda una excepcion que dice ingrese solo letras . pero para poder hacer valida la excepcion tienes que crear esta clase 

public class ExceptionSoloLetra extends Exception{
public ExceptionSoloLetra (String msg){
super(msg);
}
}




 ahora puedes ingresar solo letras sino te envia la excepcion.

Preguntas relacionadas

0 votos
0 respuestas
preguntado por adrifs95 (20 puntos) Feb 17, 2016 en Java
0 votos
1 respuesta
0 votos
1 respuesta
Bienvenido a Dudas de Programación, donde puedes hacer preguntas y recibir respuestas sobre los problemas más frecuentes de los lenguajes de programación, frameworks de desarrollo y bases de datos que utilices. Foro de Línea de Código

Categorías

...