Skip to content

Commit af1c97b

Browse files
committed
Clase 6 | 15/08/2024
Clases (continuación) y manejo de errores
1 parent f16a9f0 commit af1c97b

File tree

5 files changed

+238
-3
lines changed

5 files changed

+238
-3
lines changed

Basic/22-classes.js

Lines changed: 65 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,4 +128,68 @@ person6 = new GetSetPerson("Brais", 37, "MoureDev", "IBAN123456789")
128128
console.log(person6)
129129
console.log(person6.name)
130130

131-
person6.bank = "new IBAN123456789"
131+
person6.bank = "new IBAN123456789"
132+
133+
/*
134+
Clase 6 en vídeo | 15/08/2024
135+
Clases (continuación) y manejo de errores
136+
https://www.twitch.tv/videos/2225058195?t=00h16m42s
137+
*/
138+
139+
// Herencia
140+
141+
class Animal {
142+
143+
constructor(name) {
144+
this.name = name
145+
}
146+
147+
sound() {
148+
console.log("El animal emite un sonido genérico")
149+
}
150+
151+
}
152+
153+
class Dog extends Animal {
154+
155+
sound() {
156+
console.log("Guau!")
157+
}
158+
159+
run() {
160+
console.log("El perro corre")
161+
}
162+
163+
}
164+
165+
class Fish extends Animal {
166+
167+
constructor(name, size) {
168+
super(name)
169+
this.size = size
170+
}
171+
172+
swim() {
173+
console.log("El pez nada")
174+
}
175+
176+
}
177+
178+
let myDog = new Dog("MoureDog")
179+
myDog.run()
180+
myDog.sound()
181+
182+
let myFish = new Fish("MoureFish", 10)
183+
myFish.swim()
184+
myFish.sound()
185+
186+
// Métodos estáticos
187+
188+
class MathOperations {
189+
190+
static sum(a, b) {
191+
return a + b
192+
}
193+
}
194+
195+
console.log(MathOperations.sum(5, 10))

Basic/23-classes-exercises.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/*
2+
Clase 6 en vídeo | 15/08/2024
3+
Clases (continuación) y manejo de errores
4+
https://www.twitch.tv/videos/2225058195?t=00h16m42s
5+
*/
6+
7+
// 1. Crea una clase que reciba dos propiedades
8+
9+
// 2. Añade un método a la clase que utilice las propiedades
10+
11+
// 3. Muestra los valores de las propiedades e invoca a la función
12+
13+
// 4. Añade un método estático a la primera clase
14+
15+
// 5. Haz uso del método estático
16+
17+
// 6. Crea una clase que haga uso de herencia
18+
19+
// 7. Crea una clase que haga uso de getters y setters
20+
21+
// 8. Modifica la clase con getters y setters para que use propiedades privadas
22+
23+
// 9. Utiliza los get y set y muestra sus valores
24+
25+
// 10. Sobrescribe un método de una clase que utilice herencia

Basic/24-error-handling.js

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
/*
2+
Clase 6 en vídeo | 15/08/2024
3+
Clases (continuación) y manejo de errores
4+
https://www.twitch.tv/videos/2225058195?t=00h16m42s
5+
*/
6+
7+
// Excepción
8+
9+
// Produce una excepción
10+
let myObject
11+
// console.log(myObject.email)
12+
13+
// Captura de errores
14+
15+
// try-catch
16+
17+
try {
18+
// Código que intenta ejecutar
19+
console.log(myObject.email)
20+
console.log("Finaliza la ejecución sin errores")
21+
} catch {
22+
// Bloque de error
23+
console.log("Se ha producido un error")
24+
}
25+
26+
// Captura del error
27+
28+
try {
29+
console.log(myObject.email)
30+
} catch (error) {
31+
console.log("Se ha producido un error:", error.message)
32+
}
33+
34+
// finally
35+
36+
try {
37+
console.log(myObject.email)
38+
} catch (error) {
39+
console.log("Se ha producido un error:", error.message)
40+
} finally {
41+
console.log("Este código se ejecuta siempre")
42+
}
43+
44+
// No está soportado
45+
// try {
46+
// console.log(myObject.email)
47+
// } finally {
48+
// console.log("Este código se ejecuta siempre")
49+
// }
50+
51+
// Lanzamiento de errores
52+
53+
// throw
54+
55+
// throw new Error("Se ha producido un error");
56+
57+
function sumIntegers(a, b) {
58+
if (typeof a !== "number" || typeof b !== "number") {
59+
throw new TypeError("Esta operación sólo suma números")
60+
}
61+
if (!Number.isInteger(a) || !Number.isInteger(b)) {
62+
throw new Error("Esta operación sólo suma números enteros")
63+
}
64+
if (a == 0 || b == 0) {
65+
throw new SumZeroIntegerError("Se está intentando sumar cero", a, b)
66+
}
67+
return a + b
68+
}
69+
70+
try {
71+
console.log(sumIntegers(5, 10))
72+
// console.log(sumIntegers(5.5, 10))
73+
console.log(sumIntegers("5", 10))
74+
// console.log(sumIntegers(5, "10"))
75+
// console.log(sumIntegers("5", "10"))
76+
} catch (error) {
77+
console.log("Se ha producido un error:", error.message)
78+
}
79+
80+
// Capturar varios tipos de errores
81+
82+
try {
83+
// console.log(sumIntegers(5.5, 10))
84+
console.log(sumIntegers("5", 10))
85+
} catch (error) {
86+
if (error instanceof TypeError) {
87+
console.log("Se ha producido un error de tipo:", error.message)
88+
} else if (error instanceof Error) {
89+
console.log("Se ha producido un error:", error.message)
90+
}
91+
}
92+
93+
// Crear excepciones personalizadas
94+
95+
class SumZeroIntegerError extends Error {
96+
constructor(message, a, b) {
97+
super(message)
98+
this.a = a
99+
this.b = b
100+
}
101+
102+
printNumbers() {
103+
console.log(this.a, " + ", this.b)
104+
}
105+
}
106+
107+
try {
108+
console.log(sumIntegers(0, 10))
109+
} catch (error) {
110+
console.log("Se ha producido un error personalizado:", error.message)
111+
error.printNumbers()
112+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/*
2+
Clase 6 en vídeo | 15/08/2024
3+
Clases (continuación) y manejo de errores
4+
https://www.twitch.tv/videos/2225058195?t=00h16m42s
5+
*/
6+
7+
// 1. Captura una excepción utilizando try-catch
8+
9+
// 2. Captura una excepción utilizando try-catch y finally
10+
11+
// 3. Lanza una excepción genérica
12+
13+
// 4. Crea una excepción personalizada
14+
15+
// 5. Lanza una excepción personalizada
16+
17+
// 6. Lanza varias excepciones según una lógica definida
18+
19+
// 7. Captura varias excepciones en un mismo try-catch
20+
21+
// 8. Crea un bucle que intente transformar a float cada valor y capture y muestre los errores
22+
23+
// 9. Crea una función que verifique si un objeto tiene una propiedad específica y lance una excepción personalizada
24+
25+
// 10. Crea una función que realice reintentos en caso de error hasta un máximo de 10

README.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
1212
## Próxima clase
1313

14-
### Jueves 15 de agosto a las 20:00h (España) en directo desde [Twitch](https://twitch.tv/mouredev)
15-
#### Puedes crear un recordatorio y consultar el horario en tu país desde [Discord](https://discord.gg/mouredev?event=1270839532920770822)
14+
### Miércoles 21 de agosto a las 20:00h (España) en directo desde [Twitch](https://twitch.tv/mouredev)
15+
#### Puedes crear un recordatorio y consultar el horario en tu país desde [Discord](https://discord.gg/7nB2HZRz?event=1273733009828220938)
1616

1717
## Clases en vídeo
1818

@@ -64,6 +64,15 @@ Código:
6464
* [21 - Ejercicios: Desestructuración y propagación](./Basic/21-destructuring-spreading-exercises.js)
6565
* [22 - Clases](./Basic/22-classes.js)
6666

67+
#### [CLASE 6 | 15/08/2024 | Clases (continuación) y manejo de errores](https://www.twitch.tv/videos/2225058195?t=00h16m42s)
68+
69+
Código:
70+
71+
* [22 - Clases](./Basic/22-classes.js)
72+
* [23 - Ejercicios: Clases](./Basic/23-classes-exercises.js)
73+
* [24 - Manejo de errores](./Basic/24-error-handling.js)
74+
* [25 - Ejercicios: Manejo de errores](./Basic/25-error-handling-exercises.js)
75+
6776
## Enlaces de interés
6877

6978
* Impacto: [Stack Overflow](https://survey.stackoverflow.co/2023/#most-popular-technologies-language) | [GitHub](https://github.blog/2023-11-08-the-state-of-open-source-and-ai/) | [Índice TIOBE](https://www.tiobe.com/tiobe-index/) | [Google Trends](https://trends.google.es/trends/explore?cat=5&date=today%205-y&q=%2Fm%2F02p97,%2Fm%2F05z1_,%2Fm%2F07sbkfb&hl=es)

0 commit comments

Comments
 (0)