10.05.2014 Views

programación i - Universidad ORT Uruguay

programación i - Universidad ORT Uruguay

programación i - Universidad ORT Uruguay

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

110 Programación I<br />

Cada catch ‘captura’ un tipo especial de excepción. En el ejemplo quedaría, luego de estar<br />

definidos opcion e input (que corresponden respectivamente a la variable de tipo int en la que se<br />

leerá la opción y a la instancia de Scanner):<br />

// ingreso y valido la opción del usuario<br />

try {<br />

opcion = input.nextInt();<br />

}<br />

catch (InputMismatchException e) {<br />

System.out.println("Error, se ignora la entrada");<br />

opcion = 0;<br />

input.next();<br />

}<br />

En este caso se optó por tomar como que se hubiera ingresado un “0” (si dio error). Es<br />

fundamental colocar la sentencia input.next() para poder luego leer el siguiente dato.<br />

12.1.7 Ingreso de datos<br />

Otro punto interesante para analizar es: ¿dónde va el código de solicitar datos por pantalla? Una<br />

opción es poner un método de clase que los pida. Este método podría ir en la clase de prueba,<br />

pero pensando en un posible re-uso, podría ir en la clase correspondiente. Formalmente<br />

convendría que fuera en otro paquete independiente, pero para esta altura del curso de<br />

Programación I se prefiere incluirlo en la propia clase para no agregar más clases.<br />

En este ejemplo particular, para crear un gasto, se incluye en la clase Gasto:<br />

public static Gasto crearGasto() {<br />

Gasto unG;<br />

boolean ok;<br />

Scanner input = new Scanner(System.in);<br />

input.useDelimiter(System.getProperty("line.separator"));<br />

unG = new Gasto();<br />

ok = false;<br />

// pide datos, validando formato ok<br />

while (!ok) {<br />

try {<br />

System.out.println("Ingrese día ");<br />

unG.setDia(input.nextInt());<br />

System.out.println("Ingrese descripción ");<br />

unG.setDescripcion(input.next());<br />

System.out.println("Ingrese monto ");<br />

unG.setMonto(input.nextInt());<br />

ok = true;<br />

} catch (InputMismatchException e) {<br />

System.out.println("Datos erróneos, reingrese ");<br />

input.next();<br />

}<br />

}<br />

return unG;<br />

}

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!