Skip to content

Commit 2871bc8

Browse files
authored
Merge pull request mouredev#7627 from JimsimroDev/main
#10-JAVA
2 parents 84dc925 + 67d81b3 commit 2871bc8

File tree

1 file changed

+108
-0
lines changed

1 file changed

+108
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
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+
validarParametros(parametros);
35+
System.out.println((int) parametros.get(0) / (int) parametros.get(1));
36+
validarParametros(parametros);
37+
System.out.println((int) parametros.get(2) + 5);
38+
validarParametros(parametros);
39+
40+
// Lanzar un NullPointerException en la list
41+
// parametros.set(1, null);
42+
// System.out.println(parametros.get(1).toString());
43+
System.out.println("El programa no tiene errores ...");
44+
} catch (IndexOutOfBoundsException | ArithmeticException | JimsimroDevException e) {
45+
System.out.println(e.getClass().getName() + " generado: " + e.getMessage());
46+
} catch (Exception e) {
47+
System.out.println(e.getClass().getName() + " Error desconocido: " + e.getMessage());
48+
} finally {
49+
System.out.println("Finalizando el programa...");
50+
}
51+
}
52+
53+
static void validarParametros(List<Object> parametros) {
54+
if (parametros.size() < 3) {
55+
throw new IndexOutOfBoundsException("Se requieren al menos 3 parámetros");
56+
}
57+
if ((int) parametros.get(1) == 0) {
58+
throw new ArithmeticException("No se puede dividir entre 0");
59+
}
60+
if (parametros.get(2) instanceof String) {
61+
throw new JimsimroDevException("El tercer parámetro no puede ser una cadena");
62+
}
63+
}
64+
65+
public static void main(String[] args) {
66+
// try con recursos
67+
try (Scanner scanner = new Scanner(System.in)) {
68+
System.out.println("Ingrese el numerador: ");
69+
double numerador = scanner.nextDouble();
70+
System.out.println("Ingrese el denominador: ");
71+
double denominador = scanner.nextDouble();
72+
System.out
73+
.println(String.format("Dividir %f/%f: %f", numerador, denominador, divide(numerador, denominador)));
74+
} catch (Exception e) {
75+
System.out.println("Error aritmético: " + e.getMessage());
76+
}
77+
78+
// Division 10/0
79+
// System.out.println(String.format("Dividir 10/0: %f", divide(10, 0)));
80+
81+
try {
82+
System.out.printf("Dividir 10/2: %d", (10 / 2));
83+
System.out.println();
84+
// System.out.println(String.format("Dividir 10/0: %f", (10 / 0)));
85+
86+
List<Integer> list = new ArrayList<>() {
87+
{
88+
add(1);
89+
add(0);
90+
add(3);
91+
add(4);
92+
}
93+
};
94+
95+
System.out.println(list.get(4));
96+
procesarParametros(list);
97+
} catch (Exception e) {
98+
System.out.println("Error aritmético: " + e.getMessage());
99+
}
100+
101+
// DIFICULTAD EXTRA (opcional):
102+
List<Object> parametros = new ArrayList<>();
103+
parametros.add(1);
104+
parametros.add(2);
105+
parametros.add(3);
106+
procesarParametros2(parametros);
107+
}
108+
}

0 commit comments

Comments
 (0)