Este documento presenta un ejercicio sobre el uso de excepciones en Java para capturar errores de entrada de datos, como NumberFormatException e IOException. Se define un método try-catch dentro de un bucle while para forzar al usuario a reingresar los datos en caso de error, y se calcula el promedio de 10 calificaciones ingresadas.
2. En esta ocasión bienvenido otro
del
Hola compañero,realizaremosa un ejercicio mas
Veamos el siguiente enunciado…
tema Excepciones.
del tutorial de POO.
3. En esta ocasión realizaremos otro ejercicio del
Veamos el siguiente enunciado…
tema Excepciones.
5. Basados en el ejercicio anterior, capturar correctamente los errores
de entrada de datos respecto de los de conversión de texto en
números. Imprimir en pantalla con printStackTrace, para el caso de
entrada, y avisar al usuario que la edad no fue ingresada
correctamente.
Utilizar un bloque while para forzar al usuario a ingresar de nuevo
su nombre y edad si se detecta un error.
6. Para este ejercicio nuevamente
importaremos la librería java.io.* y
después crearemos un objeto de
BufferedReader. Igualmente
definiremos las variables nombre,
edad y categoría asignando
valores por defecto.
7. Para este ejercicio nuevamente
imporemos la librería java.io.* y
después crearemos un objeto de
BufferedReader. Igualmente
definiremos las variables nombre,
edad y categoría asignando
valores por defecto.
import java.io.*;
public class Cap2Ej3 {
public static void main(String[] args) {
//Definimos el objeto br para leer líneas
de la entrada
BufferedReader br=new BufferedReader(new
InputStreamReader(System.in));
//Definimos variables nombre, error y
acumulador dándole valores por defecto
String nombre="";
float acumulador=0;
boolean error;
8. Ahora bien, el problema pidey
SiPor usuario ingresa producesu
el otro lado, desde luego un
Agregamos si entre llaves que
Colocaremos se una cadena
EnYa ejercicio anteriorposibles
Para identificadas las utilizamos
el esto vamos a definir un do
después solicitamos undatos por
cuando debloque catch con las
respectivo lectura de identificar
Esta ocasión vamos a reservada
error en la laal usuario entero se
se le solicite palabra un valor
una forma general paraa definir
excepciones las opciones
while con vamos identificar
acciones acciones ense éste lo
adecuadoobtendremosque
try las a realizar que produce
consola hasta si las la
producirá la excepción
los errores específicos.
ahora elexcepciones.
correspondientes.
las bloque try-catch.
pudierauna ingrese. excepción.
NumberFormatException.
excepción IOException.
ocurrir una
excepción.
9. Ahora bien, el problema pidey
SiPor usuario ingresa producesu
el otro lado, desde luego un
Agregamos si entre llaves que
Colocaremos se una cadena
Para identificadas las posibles
Ya esto vamos a definir un do
después solicitamos undatos por
cuando debloque catch con las
respectivo lectura de identificar
Esta ocasión vamos a reservada
error en la laal usuario entero se
se le solicite palabra un valor
excepciones las opciones
while con vamos a definir
acciones acciones ense éste lo
adecuadoobtendremosque
try las a realizar que produce
consola hasta si las la
producirá la excepción
los errores específicos.
ahora el bloque try-catch.
correspondientes.
pudierauna ingrese. excepción.
NumberFormatException.
excepción IOException.
ocurrir una
excepción.
10. Ahora bien, el problema pidey
SiPor usuario ingresa producesu
el otro lado, desde luego un
Agregamos si entre llaves que
Colocaremos se una cadena
Para identificadas las posibles
Ya esto vamos a definir un do
después solicitamos undatos por
cuando debloque catch con las
respectivo lectura de reservada
error en la laal usuario entero se
se le solicite palabra un valor
excepciones las opciones
while con vamos a definir
acciones acciones ense éste lo
adecuadoobtendremosque
try las a realizar que produce
consola hasta si las la
producirá la excepción
ahora el bloque try-catch.
correspondientes.
pudierauna ingrese. excepción.
NumberFormatException.
excepción IOException.
ocurrir una
excepción.
11. Ahora bien, el problema pidey
Por otro lado, desde luego su
Agregamos si entre llaves un
Colocaremos se produce que
Para identificadas las posibles
Ya esto vamos a definir un do
después debloque catch con las
respectivo lectura de datos por
error en la laal usuarioreservada
se le solicite palabra un valor
excepciones las opciones
while con vamos a definir
acciones acciones ense éste lo
adecuadoobtendremosque
try las a realizar que produce
consola hasta si las la
ahora el bloque try-catch.
correspondientes.
pudierauna ingrese. excepción.
excepción IOException.
ocurrir una
excepción.
12. Ahora bien, el problema pidey
Agregamos desde luego su
Colocaremos entre llaves que
Para identificadas las posibles
Ya esto vamos a definir un do
después debloque catch con las
respectivo laal usuarioreservada
se le solicite palabra un valor
excepciones las opciones
while con vamos a definir
acciones acciones ense éste lo
adecuado hasta que produce
try las a realizar si las que
ahora el bloque try-catch.
correspondientes.
pudierauna ingrese. excepción.
ocurrir una
excepción.
13. Ahora bien, el problema pidey
Agregamos desde luego su
Colocaremos entre llaves que
Para esto vamos a definir un do
después debloque catch con las
respectivo laal usuarioreservada
se le solicite palabra un valor
while con las opciones
acciones acciones ense éste lo
adecuado hasta que produce
try las a realizar si las que
correspondientes.
pudierauna ingrese. excepción.
ocurrir una
excepción.
14. Ahora bien, el problema pidey
Agregamos desde luego su
Colocaremos entre llaves que
Para esto vamos a definir un do
después debloque catch con las
respectivo laal usuarioreservada
se le solicite palabra un valor
while con las opciones
acciones acciones ense éste lo
adecuado hasta que produce
try las a realizar si las que
correspondientes.
pudierauna ingrese. excepción.
ocurrir una
excepción.
//Iniciamos el bloque que podrá producir
errores, sólo para el nombre
try {
System.out.println("Nombre:?");
nombre = br.readLine();}
15. Ahora bien, el problema pide que
Agregamos desde luego su
Para esto vamos a definir un do
respectivo bloque catch con las
se le solicite al usuario un valor
while con las opciones
acciones a realizar que éste lo
adecuado hasta si se produce
correspondientes.
una ingrese.
excepción.
//Iniciamos el bloque que podrá producir
errores, sólo para el nombre
try {
System.out.println("Nombre:?");
nombre = br.readLine();}
16. Ahora bien, el problema pide que
Agregamos desde luego su
Para esto vamos a definir un do
respectivo bloque catch con las
se le solicite al usuario un valor
while con las opciones
acciones a realizar que éste lo
adecuado hasta si se produce
correspondientes.
una ingrese.
excepción.
//Iniciamos el bloque que podrá producir
errores, sólo para el nombre
try {
System.out.println("Nombre:?");
nombre = br.readLine();}
catch (IOException ex)
{ex.printStackTrace(System.err);}
17. Ahora bien, el problema pide que
Para esto vamos a definir un do
se le solicite al usuario un valor
while con las opciones
adecuado hasta que éste lo
correspondientes.
ingrese.
//Iniciamos el bloque que podrá producir
errores, sólo para el nombre
try {
System.out.println("Nombre:?");
nombre = br.readLine();}
catch (IOException ex)
{ex.printStackTrace(System.err);}
18. Para esto vamos a definir un do
while con las opciones
correspondientes.
//Iniciamos el bloque que podrá producir
errores, sólo para el nombre
try {
System.out.println("Nombre:?");
nombre = br.readLine();}
catch (IOException ex)
{ex.printStackTrace(System.err);}
19. Para esto vamos a definir un do
while con las opciones
correspondientes.
//Iniciamos el bloque que podrá producir
errores, sólo para el nombre
try {
System.out.println("Nombre:?");
nombre = br.readLine();}
catch (IOException ex)
{ex.printStackTrace(System.err);}
//iniciamos una iteración del 0 al 9
for(int i=0;i<10;i++){
error=false;
//iniciamos el bloque do{} while(); que se
repetirá en caso de error
do{
error=false;
21. Iniciamos el siguiente bloque trycatch para
NumberFormatException.
//iniciamos el bloque try que podrá dar
error de conversión numérica
try{
//ponemos i+1 entre (), caso contrario se
concatenarán como texto
System.out.print("Examen "+(i+1)+"? ");
acumulador+=Float.parseFloat(br.readLine())
;Como por defecto la categoría es A,
revisamos si aumentamos a B o C
if(edad>25){categoria='B';}
if(edad>50){categoria='C';}
}
22. Adjuntamos también el catch
Colocamos su respectivo catch
respectivo por siel resultado y lo
Redondeamos se produce una
con las acciones a realizar si se
Calculamos el promedio.
IOException y cerramos el do
imprimimos en pantalla.
produce la excepción.
while.
25. Adjuntamos también el catch
respectivo por siel resultado y lo
Redondeamos se produce una
Calculamos el promedio.
IOException y cerramos el do
imprimimos en pantalla.
while.
catch(NumberFormatException ex)
{System.out.println("Error, ingresar
denuevo");error=true;}
catch(IOException
ex){ex.printStackTrace();System.exit(-1);}
}while (error);
}
26. Redondeamos el resultado y lo
Calculamos el promedio.
imprimimos en pantalla.
catch(NumberFormatException ex)
{System.out.println("Error, ingresar
denuevo");error=true;}
catch(IOException
ex){ex.printStackTrace();System.exit(-1);}
}while (error);
}
27. Redondeamos el resultado y lo
Calculamos el promedio.
imprimimos en pantalla.
catch(NumberFormatException ex)
{System.out.println("Error, ingresar
denuevo");error=true;}
catch(IOException
ex){ex.printStackTrace();System.exit(-1);}
}while (error);
}
//Tenemos lista la suma parcial y
calculamos su promedio.
acumulador/=10;
28. Redondeamos el resultado y lo
imprimimos en pantalla.
catch(NumberFormatException ex)
{System.out.println("Error, ingresar
denuevo");error=true;}
catch(IOException
ex){ex.printStackTrace();System.exit(-1);}
}while (error);
}
//Tenemos lista la suma parcial y
calculamos su promedio.
acumulador/=10;
29. Redondeamos el resultado y lo
imprimimos en pantalla.
catch(NumberFormatException ex)
{System.out.println("Error, ingresar
denuevo");error=true;}
catch(IOException
ex){ex.printStackTrace();System.exit(-1);}
}while (error);
}
//Tenemos lista la suma parcial y
calculamos su promedio.
acumulador/=10;
//Redondeamos el resultado a dos digitos.
acumulador=(float)Math.round(acumulador*100
)/100;
System.out.println(nombre+", tu promedio es
de: "+acumulador);
System.exit(0);}}
31. Bueno compañero, esto fue todo
por Nos vemos en que la solución
ahora, espero el siguiente
de ejercicio. Hasta pronto.
este ejercicio te haya sido
clara y provechosa.
32. Nos vemos en el siguiente
ejercicio. Hasta pronto.