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