Skip to content

Commit b76ac38

Browse files
committed
✨ Add challenge-10 solution
1 parent da128d4 commit b76ac38

File tree

2 files changed

+73
-0
lines changed

2 files changed

+73
-0
lines changed

2024/10-excepciones/README.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Reto 10: Excepciones
2+
3+
## Enunciado
4+
5+
EJERCICIO:
6+
Explora el concepto de manejo de excepciones según tu lenguaje.
7+
8+
Fuerza un error en tu código, captura el error, imprime dicho error y evita que el programa se detenga de manera inesperada.
9+
10+
Prueba a dividir "10/0" o acceder a un índice no existente de un listado para intentar provocar un error.
11+
12+
DIFICULTAD EXTRA (opcional):
13+
14+
Crea una función que sea capaz de procesar parámetros, pero que también pueda lanzar 3 tipos diferentes de excepciones (una de ellas tiene que corresponderse con un tipo de excepción creada por nosotros de manera personalizada, y debe ser lanzada de manera manual) en caso de error.
15+
16+
- Captura todas las excepciones desde el lugar donde llamas a la función.
17+
- Imprime el tipo de error.
18+
- Imprime si no se ha producido ningún error.
19+
- Imprime que la ejecución ha finalizado.

2024/10-excepciones/index.js

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
/* eslint-disable no-throw-literal */
2+
/* eslint-disable no-console */
3+
// Función que procesa parámetros y lanza excepciones
4+
function procesarParametros(param) {
5+
try {
6+
if (param === 1) {
7+
throw 'Excepción personalizada: El parámetro no puede ser igual a 1';
8+
} else if (param === 2) {
9+
throw new RangeError('Excepción: El parámetro no puede ser igual a 2');
10+
} else if (param === 3) {
11+
throw new Error('Excepción: El parámetro no puede ser igual a 3');
12+
} else {
13+
console.log('Parámetro procesado correctamente:', param);
14+
}
15+
} catch (error) {
16+
console.error('Se ha producido un error:', error);
17+
} finally {
18+
console.log('La ejecución ha finalizado.');
19+
}
20+
}
21+
22+
// Ejemplos de llamada a la función procesarParametros
23+
console.log('Llamada con parámetro 0:');
24+
procesarParametros(0);
25+
26+
console.log('\nLlamada con parámetro 1:');
27+
procesarParametros(1);
28+
29+
console.log('\nLlamada con parámetro 2:');
30+
procesarParametros(2);
31+
32+
console.log('\nLlamada con parámetro 3:');
33+
procesarParametros(3);
34+
35+
// Provocando errores adicionales
36+
try {
37+
console.log('\nIntentando dividir por cero (10/0):');
38+
const resultado = 10 / 0;
39+
console.log('Resultado:', resultado);
40+
} catch (error) {
41+
console.error('Se ha producido un error:', error);
42+
} finally {
43+
console.log('La ejecución ha finalizado.');
44+
}
45+
46+
try {
47+
console.log('\nIntentando acceder a un índice no existente:');
48+
const array = [1, 2, 3];
49+
console.log('Elemento en el índice 5:', array[5]);
50+
} catch (error) {
51+
console.error('Se ha producido un error:', error);
52+
} finally {
53+
console.log('La ejecución ha finalizado.');
54+
}

0 commit comments

Comments
 (0)