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