Skip to content

Commit 4c0f4a2

Browse files
committed
#10 - TypeScript
1 parent a53c3f0 commit 4c0f4a2

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
/*
2+
* EJERCICIO:
3+
* Explora el concepto de manejo de excepciones según tu lenguaje.
4+
* Fuerza un error en tu código, captura el error, imprime dicho error
5+
* y evita que el programa se detenga de manera inesperada.
6+
* Prueba a dividir "10/0" o acceder a un índice no existente
7+
* de un listado para intentar provocar un error.
8+
*/
9+
10+
try {
11+
console.log(number[3])
12+
} catch (err) {
13+
console.error(err)
14+
}
15+
16+
console.log(`Fuera de la exepción`)
17+
18+
19+
/*
20+
* DIFICULTAD EXTRA (opcional):
21+
* Crea una función que sea capaz de procesar parámetros, pero que también
22+
* pueda lanzar 3 tipos diferentes de excepciones (una de ellas tiene que
23+
* corresponderse con un tipo de excepción creada por nosotros de manera
24+
* personalizada, y debe ser lanzada de manera manual) en caso de error.
25+
* - Captura todas las excepciones desde el lugar donde llamas a la función.
26+
* - Imprime el tipo de error.
27+
* - Imprime si no se ha producido ningún error.
28+
* - Imprime que la ejecución ha finalizado.
29+
*/
30+
31+
class MyError extends Error {
32+
constructor(message: string) {
33+
super(message)
34+
this.name = this.constructor.name
35+
}
36+
}
37+
38+
function process(param1: number): void {
39+
try {
40+
if (typeof param1 === 'string') {
41+
throw new TypeError('El tipo de dato no puede ser un string')
42+
}
43+
44+
if (param1 > 10) {
45+
throw new RangeError('El numero no puede ser mayor que 10')
46+
}
47+
48+
if (param1 === 7) {
49+
throw new MyError('El numero no ouede ser igual a 7')
50+
}
51+
52+
console.log('No se han producido errores')
53+
} catch (error) {
54+
console.error('Tipo de error:', error.constructor.name)
55+
console.error('Mensaje de error:', error.message)
56+
} finally {
57+
console.log('la ejecución ha finalizado')
58+
}
59+
}
60+
61+
process(7)

0 commit comments

Comments
 (0)