elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  problema implementacion try... catch
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: problema implementacion try... catch  (Leído 2,450 veces)
andrex.125

Desconectado Desconectado

Mensajes: 19


Ver Perfil
problema implementacion try... catch
« en: 25 Septiembre 2013, 16:41 pm »

hola, estoy haciendo un método para registrar un músico en una posición de un vector,  hasta aquí todo bien, ahora tengo que implementar el try catch y lo hice de esta forma :

registrar músico
Código
  1.  static void registarMusico(Musico[] vector) {
  2.        try {
  3.  
  4.        String cedula = JOptionPane.showInputDialog("Ingrese cedula ");
  5.        String nombre = JOptionPane.showInputDialog("Ingrese Nombre: ");
  6.        double salario = Double.parseDouble(JOptionPane.showInputDialog(null, "Asignar salario:"));
  7.        String instrumento = JOptionPane.showInputDialog("Ingrese instrumento: ");
  8.        String telefono = JOptionPane.showInputDialog("Ingrese telefono: ");
  9.  
  10.        vector[posM] = new Musico(instrumento, cedula, nombre, salario);
  11.        posM++;
  12.  
  13.        }catch (NumberFormatException nfe) {
  14.                JOptionPane.showMessageDialog(null, "El formato de número es erróneo");
  15.  
  16.  
  17.    }
  18.  
  19.    }
  20.  

Lo que no me gusta es que cada vez que el usuario se equivoca se lanza la excepción pero se devuelve hasta el principio y hay que comenzar de nuevo a llenar todos los datos, quisiera saber como podría hacer para que no se devuelva a pedir todos los datos, que solo pida en el que se equivoco y siga su ejecución.

Gracias.


« Última modificación: 30 Septiembre 2013, 21:47 pm por Debci » En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: problema implementacion try... catch
« Respuesta #1 en: 25 Septiembre 2013, 16:57 pm »

1. Coloca la excepción solo donde podría producirse un error. En este caso sería en la variable salario.
2. Utiliza un do-while para controlar el bloque del try-catch. Cada vez que se produzca la excepción volverá a pedir que ingrese unicamente el salario. Esto se puede hacer implementando una bandera booleana y utilizarla como condición en el do-while.

Edito:
Por cierto la asignación al vector tiene que ser una vez capturado todos los valores correctamente.


« Última modificación: 3 Septiembre 2015, 18:34 pm por 1mpuls0 » En línea

abc
andrex.125

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: problema implementacion try... catch
« Respuesta #2 en: 25 Septiembre 2013, 17:03 pm »

1. Coloca la excepción solo donde podría producirse un error. En este caso sería en la variable salario.
2. Utiliza un do-while para controlar el bloque del try-catch. Cada vez que se produzca la excepción volverá a pedir que ingrese unicamente el salario. Esto se puede hacer implementando una bandera booleana y utilizarla como condición en el do-while.

gracias por tu respuesta.
 me puedes ayudar con una excepción, para verificar los otros datos osea para que en los de tipo String solo se ingrese caracteres de la a-z, dado que en un String se puede ingresar cualquier carácter. 

Gracias.
En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: problema implementacion try... catch
« Respuesta #3 en: 25 Septiembre 2013, 17:21 pm »

Tiene que ser forzosamente excepciones? xD

Porque puedes hacerlo con expresiones regulares.

Código
  1. /*Autor: 1mpuls0*/
  2.  
  3. public boolean isAlpha(String value) {
  4.        try {
  5.            if(!value.isEmpty()) {
  6.                Pattern p = Pattern.compile("^[a-zA-Z]+$");
  7.                Matcher m = p.matcher(value);
  8.                if(m.find()) {
  9.                    return true;
  10.                } else {
  11.                    return false;
  12.                }
  13.            } else {
  14.                return false;
  15.            }
  16.        } catch(NullPointerException npe) {
  17.            System.out.println(npe.getMessage());
  18.            return false;
  19.        } catch(PatternSyntaxException pse) {
  20.            System.out.println(pse.getMessage());
  21.            return false;
  22.        }
  23.    }
  24.  

El método isAlpha retorna true si el valor solo contiene letras.
« Última modificación: 3 Septiembre 2015, 18:35 pm por 1mpuls0 » En línea

abc
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[API Facebook + Url Amigables] Problema para implementacion !
PHP
Diabliyo 0 3,149 Último mensaje 25 Agosto 2011, 23:45 pm
por Diabliyo
try catch en c++ (dev c++)
Programación C/C++
JulCesa 3 5,233 Último mensaje 27 Noviembre 2011, 19:21 pm
por naderST
Problema con separar interfaz de implementación de una clase.
Programación C/C++
reethok 6 6,170 Último mensaje 25 Diciembre 2011, 14:43 pm
por 3mp3z@ndo
Problema con ejercicio de separar interfaz de implementación de una clase
Programación C/C++
Mordecai 1 2,275 Último mensaje 14 Septiembre 2013, 04:49 am
por erest0r
C++ - Problema con implementación del QuickSort. « 1 2 »
Programación C/C++
xaps 10 4,873 Último mensaje 1 Abril 2014, 22:16 pm
por xaps
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines