Foros del Web » Programación para mayores de 30 ;) » Java »

Excepciones por consola Java

Estas en el tema de Excepciones por consola Java en el foro de Java en Foros del Web. Buenas tardes comunidad: Estoy haciendo una aplicación por consola en el programa Eclipse (Java), y tengo problemas en el manejo de excepciones por medio de ...
  #1 (permalink)  
Antiguo 30/09/2011, 14:36
 
Fecha de Ingreso: septiembre-2011
Mensajes: 40
Antigüedad: 13 años, 1 mes
Puntos: 0
Pregunta Excepciones por consola Java

Buenas tardes comunidad:

Estoy haciendo una aplicación por consola en el programa Eclipse (Java), y tengo problemas en el manejo de excepciones por medio de la consola.

Cuento corto: necesito que al ingresar el nombre, este debe tener como mínimo 2 caracteres y máximo 30.


Acá dejo la clase Menu:


package ProcedimientoAlmacenado;

import java.sql.*;
import java.util.*;
import java.io.*;

public class callableDemo extends Carga.Persona{
private Connection Conexion;
private CallableStatement cstmt = null ;


public callableDemo(String nombre, String apellido, String rut, Connection Con)
{
super(nombre, apellido, rut);
Conexion = Con;
}

public static void main(String args[]) throws Exception
{

Class.forName("com.microsoft.sqlserver.jdbc.SQLSer verDriver");
Connection con=DriverManager.getConnection("jdbc:sqlserver://MARTE:1433;DatabaseName=Prueba", "sa", "gsiinformatica");
//Step-1

CallableStatement cstmt = con.prepareCall("{call ProcedAlmac_ExcepcionesFinal(?,?,?)}");
Scanner sc=new Scanner(System.in);


// Si fuese integer System.out.print("Enter the Employee No: ");
//int x=sc.nextInt();


// static void AtajaErrores(String nombre)

System.out.print("Ingrese el nombre: ");
// {
// if (nombre.trim().length()<2 || nombre.trim().length()>30)
// {
String nombre = sc.next().toUpperCase();
// }
// else
// {
// System.out.print("El nombre debe tener entre 2 y 30 letras...");
// }
// }
// catch (ExcepcionNombre e1)
// {
// System.out.println(e1);
// }
// }

//if (nombre.length()<2 && nombre.length()>30 );{
//System.out.println("El nombre debe tener entre 2 y 30 letras");
// }
System.out.print("Ingrese el apellido: ");

String apellido = sc.next();
//try{
//System.out.print("Ingrese el apellido: ");

//}catch(IOException e){System.out.println("El nombre debe tener entre 2 y 30 letras");}
//String apellido = sc.next();
//}



System.out.println("Ingrese el RUT: ");
String rut = sc.next();



//Step-2
cstmt.setString(1,nombre);
cstmt.setString(2,apellido);
cstmt.setString(3,rut);
//Step -3
cstmt.execute();
System.out.println("***Llamada a Procedimiento Almacenado****");
System.out.println("Registro Agregado con Exito");
con.close();
}
}


Y acá les dejo la clase Persona, de la cual pretendo heredar los métodos void para modificar:



package Carga;

public class Persona {

protected static String nombre;
protected static String apellido;
protected static String rut;

// METODO CONSTRUCTOR CON PARAMETROS //

public Persona (String nombre, String apellido, String rut)
{
setNombre(nombre);
setApellido(apellido);
setRut(rut);
}


// METODOS ACCESADORES DE NOMBRE, APELLIDO Y RUT//

protected static String getNombre ()
{
return nombre;
}

protected static String getApellido()
{
return apellido;
}
public String getRut()
{
return rut;
}

// METODOS MUTADORES DE NOMBRE, APELLIDO Y RUT//

public static void setNombre (String nombre)
{
if ((nombre.trim().length()<=2) || (nombre.trim().length()>=30))
{
nombre = nombre.trim();
}
else
{
System.out.print ("Debe ingresar un nombre válido");
}
}

public void setApellido (String apellido)
{
if ((apellido.trim().length()<=2)||(apellido.trim().l ength()>=20))
{
this.apellido = apellido.trim();
}
else
{
System.out.println ("Debe ingresar un apellido válido");
}
}

public void setRut (String rut)
{
if ((rut.trim().length()<10)|| (rut.trim().length()>12))
{
this.rut = rut.trim();
}
else
{
System.out.println ("Debe de ingresar un RUT con puntos y guion");
}
}

public void printMenu()
{
System.out.println ("El nombre de la persona es: "+ getNombre() );
System.out.println ("El apellido de la persona es: "+ getApellido() );
System.out.println ("El numero de la persona es: "+ getRut() );
}
}



Ayuda, por favor!!!!!!!!!


Lo otro: NO SÉ CÓMO VALIDAR EL RUT PARA QUE, POR EJEMPLO, AL INGRESARLO CON O SIN PUNTOS O GUIÓN, INGRESE A LA BASE DE DATOS CON LOS PUNTOS Y GUIÓN.

Ej: 161503337 ---> 16.150.333-0
  #2 (permalink)  
Antiguo 01/10/2011, 01:49
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 6 meses
Puntos: 306
Respuesta: Excepciones por consola Java

Para empezar, lo que tú quieres no tiene nada que ver con las excepciones, y lo de manejo de excepciones por medio de la consola ni siquiera tiene sentido.

Sobre tu pregunta, para detectar si una cadena tiene el formato que te interesa, tienes dos opciones, usar regex (expresiones regulares) o ver qué caracter hay en ciertas posiciones (existen métodos para ello).

Los regex requieren informarse un poco, pero a la larga son muy útiles

http://download.oracle.com/javase/tu...sential/regex/

Para añadir el punto y el guión si no lo trae, no hay métodos mágicos, desmontas las cadena en los trozos de longitud que te interesan y añades los caracteres.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.

Etiquetas: consola, excepciones, rut
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:56.