Skip to content

Commit 0ca3374

Browse files
committed
[10] - Juserdev
1 parent 285cdc9 commit 0ca3374

File tree

2 files changed

+108
-0
lines changed

2 files changed

+108
-0
lines changed

Roadmap/09 - HERENCIA/typescript/juserdev.ts

+21
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,14 @@ namespace herencias {
8888
this.empleados.push(empleado)
8989
}
9090

91+
imprimirEmpleados(){
92+
let empleados: string[] = []
93+
for (const empleado of this.empleados) {
94+
empleados.push(empleado.name)
95+
}
96+
return empleados
97+
}
98+
9199
}
92100

93101

@@ -148,4 +156,17 @@ namespace herencias {
148156

149157
console.log(miProgramador.add(miProgramador2))
150158
console.log(miGerente.print())
159+
160+
console.log(miProgramador.programar())
161+
console.log(miProgramador2.programar())
162+
console.log(miProgramador3.programar())
163+
console.log(miProgramador4.programar())
164+
console.log(miGerenteDeProyectos.gerenciarDeProyectos())
165+
console.log(miGerenteDeProyectos2.gerenciarDeProyectos())
166+
console.log(miGerente.gerenciar())
167+
168+
console.log(miGerente.imprimirEmpleados())
169+
console.log(miGerenteDeProyectos.imprimirEmpleados())
170+
console.log(miGerenteDeProyectos2.imprimirEmpleados())
171+
console.log(miProgramador.imprimirEmpleados())
151172
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
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+
* DIFICULTAD EXTRA (opcional):
10+
* Crea una función que sea capaz de procesar parámetros, pero que también
11+
* pueda lanzar 3 tipos diferentes de excepciones (una de ellas tiene que
12+
* corresponderse con un tipo de excepción creada por nosotros de manera
13+
* personalizada, y debe ser lanzada de manera manual) en caso de error.
14+
* - Captura todas las excepciones desde el lugar donde llamas a la función.
15+
* - Imprime el tipo de error.
16+
* - Imprime si no se ha producido ningún error.
17+
* - Imprime que la ejecución ha finalizado.
18+
*/
19+
20+
namespace challenge_10{
21+
// const dividir = (a: number, b: number): number =>{
22+
// if (b === 0) {
23+
// throw new Error("no se puede dividir entre 0")
24+
// }
25+
// return a / b
26+
// }
27+
28+
// try {
29+
// const resultado = dividir(10,0)
30+
// console.log(`Resultado: ${resultado}`)
31+
// }
32+
// catch(e){
33+
// console.error("Se a ocacionado un error: ", (e as Error).message)
34+
// }
35+
// console.log("Hola, que pasa!")
36+
37+
class DivisionByZeroError extends Error{
38+
constructor(){
39+
super("No se puede dividir por 0")
40+
this.name = "DivisionByZeroError"
41+
}
42+
}
43+
44+
//* Esta la cree para probar mi conocimiento sobre el tema
45+
46+
class StrTypeError extends Error{
47+
constructor(){
48+
super("el parametro no puede ser un string")
49+
this.name = "StrTypeError"
50+
}
51+
}
52+
53+
const process_param = (params: any[])=>{
54+
if (params.length < 3) {
55+
throw new RangeError("El numero de parametros es insuficientes, se esperan al menos 3")
56+
} else if (params[1] === 0){
57+
throw new DivisionByZeroError()
58+
} else if (typeof params[2] !== "number") {
59+
// throw new Error("No determiamos la causa del error") -> si ejecuto esta linea de codigo, manda un erro generico
60+
throw new StrTypeError()
61+
}
62+
63+
console.log(params)
64+
console.log(params[0] / params[1])
65+
console.log(params[2] + 5)
66+
}
67+
try{
68+
process_param([1,2,"3",4])
69+
}
70+
catch(e){
71+
if (e instanceof RangeError) {
72+
console.error("Se ha productido el error: ", (e as Error).name, "->", (e as Error).message)
73+
} else if (e instanceof DivisionByZeroError) {
74+
console.error("Se ha productido el error: ", (e as Error).name, "->", (e as Error).message)
75+
} else if (e instanceof StrTypeError){ // no esta funcionando debido a que debia cargar un error generico
76+
console.error("Se ha productido el error: ", (e as Error).name, "->", (e as Error).message)
77+
} else if (e as Error) {
78+
console.error("Se ha productido un error inesperado: ", e)
79+
} else {
80+
console.log("no se ha producido ningun error")
81+
}
82+
}
83+
finally{
84+
console.log("El programa ha finalizado")
85+
}
86+
}
87+

0 commit comments

Comments
 (0)