Skip to content

Commit b865748

Browse files
committed
#10-JAVA
1 parent 486d300 commit b865748

File tree

1 file changed

+103
-0
lines changed

1 file changed

+103
-0
lines changed
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
import java.util.ArrayList;
2+
import java.util.List;
3+
import java.util.Scanner;
4+
5+
public class JimsimroDev {
6+
7+
public static class JimsimroDevException extends RuntimeException {
8+
public JimsimroDevException(String message) {
9+
super(message);
10+
}
11+
}
12+
13+
static double divide(double numerator, double denominator) {
14+
if (denominator == 0) {
15+
throw new ArithmeticException("No se puede dividir entre 0");
16+
}
17+
return numerator / denominator;
18+
}
19+
20+
static void procesarParametros(List<Integer> parametros) {
21+
try {
22+
System.out.println(parametros.get(2));
23+
System.out.println(parametros.get(0) / parametros.get(1));
24+
} catch (IndexOutOfBoundsException | ArithmeticException e) {
25+
System.out.println(e.getClass().getName() + " generado: " + e.getMessage());
26+
}
27+
System.out.println("Finalizando programa...");
28+
}
29+
30+
static void procesarParametros2(List<Object> parametros) {
31+
try {
32+
validarParametros(parametros);
33+
System.out.println(parametros.get(2));
34+
System.out.println((int) parametros.get(0) / (int) parametros.get(1));
35+
System.out.println((int) parametros.get(2) + 5);
36+
37+
// Lanzar un NullPointerException en la list
38+
// parametros.set(1, null);
39+
// System.out.println(parametros.get(1).toString());
40+
System.out.println("El programa no tiene errores ...");
41+
} catch (IndexOutOfBoundsException | ArithmeticException | JimsimroDevException e) {
42+
System.out.println(e.getClass().getName() + " generado: " + e.getMessage());
43+
} catch (Exception e) {
44+
System.out.println(e.getClass().getName() + " Error desconocido: " + e.getMessage());
45+
} finally {
46+
System.out.println("Finalizando el programa...");
47+
}
48+
}
49+
50+
static void validarParametros(List<Object> parametros) {
51+
if (parametros.size() < 3) {
52+
throw new IndexOutOfBoundsException("Se requieren al menos 3 parámetros");
53+
} else if ((int) parametros.get(1) == 0) {
54+
throw new ArithmeticException("No se puede dividir entre 0");
55+
} else if (parametros.get(2) instanceof String) {
56+
throw new JimsimroDevException("El tercer parámetro no puede ser una cadena");
57+
}
58+
}
59+
60+
public static void main(String[] args) {
61+
// try con recursos
62+
try (Scanner scanner = new Scanner(System.in)) {
63+
System.out.println("Ingrese el numerador: ");
64+
double numerador = scanner.nextDouble();
65+
System.out.println("Ingrese el denominador: ");
66+
double denominador = scanner.nextDouble();
67+
System.out
68+
.println(String.format("Dividir %f/%f: %f", numerador, denominador, divide(numerador, denominador)));
69+
} catch (Exception e) {
70+
System.out.println("Error aritmético: " + e.getMessage());
71+
}
72+
73+
// Division 10/0
74+
// System.out.println(String.format("Dividir 10/0: %f", divide(10, 0)));
75+
76+
try {
77+
System.out.printf("Dividir 10/2: %d", (10 / 2));
78+
System.out.println();
79+
// System.out.println(String.format("Dividir 10/0: %f", (10 / 0)));
80+
81+
List<Integer> list = new ArrayList<>() {
82+
{
83+
add(1);
84+
add(2);
85+
add(3);
86+
add(4);
87+
}
88+
};
89+
90+
System.out.println(list.get(4));
91+
procesarParametros(list);
92+
} catch (Exception e) {
93+
System.out.println("Error aritmético: " + e.getMessage());
94+
}
95+
96+
// DIFICULTAD EXTRA (opcional):
97+
List<Object> parametros = new ArrayList<>();
98+
parametros.add(1);
99+
parametros.add(2);
100+
parametros.add(3);
101+
procesarParametros2(parametros);
102+
}
103+
}

0 commit comments

Comments
 (0)