Skip to content

Commit 155bb35

Browse files
committed
Clase 8 [Fin] | 28/05/2025
Manejo de excepciones, depuración y extras
1 parent d040308 commit 155bb35

8 files changed

Lines changed: 246 additions & 4 deletions

File tree

README.md

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,8 @@
99
### Proyecto realizado durante emisiones en directo desde [Twitch](https://twitch.tv/mouredev)
1010
> ##### Si consideras útil el curso, apóyalo haciendo "★ Star" en el repositorio. ¡Gracias!
1111
12-
## 🆕 NUEVO: Curso desde cero [En desarrollo]
13-
14-
### 🔴 PRÓXIMA CLASE EN DIRECTO: Miércoles 28 de mayo a las 20:00h (España) en [Twitch](https://twitch.tv/mouredev)
15-
### 🗓️ CONSULTA EL HORARIO POR PAÍS Y CREA UN RECORDATORIO desde [Discord](https://discord.com/events/729672926432985098/1374840442600030268/1377345680179200000)
12+
## Curso desde cero
13+
### Próximamente se subirá editado a [YouTube](https://youtube.com/@mouredev) y con extras (ejercicios, test, examen, certificado y soporte) a [mouredev pro](https://mouredev.pro)
1614

1715
### Clases:
1816

@@ -57,6 +55,11 @@
5755
* [Composición](./basic/c08_oop/Composition.java)
5856
* Ejercicios: [Encapsulamiento](./basic/c08_oop/AccessModifiersExercises.java) | [Herencia](./basic/c08_oop/InheritanceExercises.java) | [Polimorfismo](./basic/c08_oop/PolymorphismExercises.java) | [Abstracción](./basic/c08_oop/AbstractionExercises.java)
5957

58+
* Clase 8 [28/05/2025] - Manejo de excepciones, depuración y extras
59+
* [Vídeo](https://www.twitch.tv/videos/2471305243)
60+
* [Excepciones](./basic/c09_exceptions/Exceptions.java) | [Lanzamiento](./basic/c09_exceptions/ThrowExample.java) | [Excepciones personalizadas](./basic/c09_exceptions/CustomException.java) | [Ejercicios](./basic/c09_exceptions/ExceptionsExercises.java)
61+
* [Extras](./basic/c10_extras/Extras.java) | [Ejemplo](./basic/c10_extras/ExtrasExample.java) | [Ejercicios](./basic/c10_extras/ExtrasExercises.java)
62+
6063

6164
## Enlaces de interés
6265

@@ -89,6 +92,9 @@ Si la acogida de la comunidad es buena, seguiré creando cursos más avanzados.
8992

9093
Sí, una vez finalizados, todos los cursos son editados y subidos en bloque a YouTube.
9194

95+
#### ¿Se creará una continuación del curso?
96+
Si, una vez publicado en YouTube, el apoyo de la comunidad es bueno, crearé un nuevo curso con lecciones más avanzadas.
97+
9298
#### ¿Existe algún lugar donde consultar dudas?
9399
He creado un canal llamado "Java" en el [servidor de Discord](https://discord.gg/mouredev) de la comunidad. Allí puedes consultar dudas y ayudar al resto de miembros. Así nos beneficiamos tod@s.
94100

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package basic.c09_exceptions;
2+
3+
/*
4+
Clase 8 - Manejo de excepciones, depuración y extras (28/05/2025)
5+
Vídeo: https://www.twitch.tv/videos/2471305243
6+
*/
7+
8+
public class CustomException extends Exception {
9+
10+
public CustomException(String message) {
11+
super(message);
12+
}
13+
}
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
package basic.c09_exceptions;
2+
3+
/*
4+
Clase 8 - Manejo de excepciones, depuración y extras (28/05/2025)
5+
Vídeo: https://www.twitch.tv/videos/2471305243
6+
*/
7+
8+
public class Exceptions {
9+
10+
public static void main(String[] args) {
11+
12+
// Manejo de excepciones
13+
14+
// try catch
15+
try {
16+
var result = 10 / 0;
17+
System.out.println(result);
18+
} catch (ArithmeticException e) {
19+
System.out.println("Error: " + e);
20+
}
21+
22+
// try con múltiples catch
23+
try {
24+
var result = 10 / 5;
25+
System.out.println(result);
26+
27+
var name = "Brais";
28+
name = null;
29+
System.out.println("Name: " + name.toUpperCase());
30+
} catch (ArithmeticException e) {
31+
System.out.println("Cuidado con dividir algo que no puedes: " + e);
32+
} catch (NullPointerException e) {
33+
System.out.println("Ha ocurrido un null pointer mítico!");
34+
} catch (Exception e) {
35+
System.out.println("Se ha producido un error no esperado");
36+
}
37+
38+
// finally
39+
try {
40+
var result = 10 / 0;
41+
System.out.println(result);
42+
} catch (ArithmeticException e) {
43+
System.out.println("Error: " + e);
44+
} finally {
45+
System.out.println("Fin del bloque try-catch");
46+
}
47+
48+
// throw
49+
var throwExample = new ThrowExample();
50+
try {
51+
throwExample.checkAge(15);
52+
} catch (IllegalArgumentException e) {
53+
System.out.println("Error revisando la edad: " + e.getMessage());
54+
}
55+
56+
// Excepción personalizada
57+
try {
58+
throwExample.checkScore(450);
59+
} catch (CustomException e) {
60+
System.out.println("Error revisando la puntuación: "+ e.getMessage());
61+
}
62+
63+
System.out.println("Fin");
64+
}
65+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package basic.c09_exceptions;
2+
3+
/*
4+
Clase 8 - Manejo de excepciones, depuración y extras (28/05/2025)
5+
Vídeo: https://www.twitch.tv/videos/2471305243
6+
*/
7+
8+
public class ExceptionsExercises {
9+
10+
public static void main(String[] args) {
11+
12+
// 1. Divide dos números almacenados en dos variables. Maneja la división por cero con try-catch.
13+
14+
// 2. Crea un array de 3 elementos e intenta acceder al índice 5. Captura el ArrayIndexOutOfBoundsException.
15+
16+
// 3. Crea una variable String nula e intenta imprimir su longitud. Maneja el NullPointerException.
17+
18+
// 4. Escribe una función que transforma texto a número. Usa try-catch para manejar entradas no válidas (NumberFormatException).
19+
20+
// 5. Escribe un programa con un bloque finally que se ejecute siempre, haya o no error.
21+
22+
// 6. Usa throw para lanzar un IllegalArgumentException si un número introducido es negativo.
23+
24+
// 7. Crea una clase TemperatureChecker que lanza una excepción personalizada si la temperatura es menor a -50 o mayor a 50.
25+
26+
// 8. Crea un programa con varios bloques catch: uno para ArithmeticException, otro para ArrayIndexOutOfBoundsException.
27+
28+
// 9. Crea una función checkPassword(String pass) que lance una excepción si la contraseña es demasiado corta.
29+
30+
// 10. Implementa una clase LoginSystem que use una excepción personalizada LoginFailedException si el usuario o contraseña son incorrectos.
31+
}
32+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package basic.c09_exceptions;
2+
3+
/*
4+
Clase 8 - Manejo de excepciones, depuración y extras (28/05/2025)
5+
Vídeo: https://www.twitch.tv/videos/2471305243
6+
*/
7+
8+
public class ThrowExample {
9+
10+
public void checkAge(int age) throws IllegalArgumentException {
11+
if (age < 18) {
12+
throw new IllegalArgumentException("Tienes que ser mayor de edad");
13+
} else {
14+
System.out.println("Es mayor de edad");
15+
}
16+
}
17+
18+
public void checkScore(int score) throws CustomException {
19+
if (score < 0 || score > 100) {
20+
throw new CustomException("La puntuación debe estar entre 0 y 100");
21+
} else {
22+
System.out.println("Puntuación válida: " + score);
23+
}
24+
}
25+
}

basic/c10_extras/Extras.java

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package basic.c10_extras;
2+
3+
/*
4+
Clase 8 - Manejo de excepciones, depuración y extras (28/05/2025)
5+
Vídeo: https://www.twitch.tv/videos/2471305243
6+
*/
7+
8+
import basic.c08_oop.Classes;
9+
import basic.c08_oop.Person;
10+
11+
import java.util.Scanner;
12+
//import basic.c08_oop.*;
13+
14+
public class Extras {
15+
16+
static String globalName = "mouredev";
17+
18+
public static void main(String[] args) {
19+
20+
// Extras
21+
22+
// null
23+
24+
String name = "Brais";
25+
name = null;
26+
if (name != null) {
27+
System.out.println(name.toLowerCase());
28+
}
29+
30+
// import
31+
32+
new Person("Brais", 18, "1");
33+
new Classes();
34+
35+
// Scanner
36+
37+
var scanner = new Scanner(System.in);
38+
39+
System.out.println("Introduce tu edad: ");
40+
var age = scanner.nextInt();
41+
42+
System.out.println("La edad es: " + age);
43+
44+
// Scope: variables globales y locales
45+
46+
test();
47+
48+
// static
49+
}
50+
51+
public static void test() {
52+
System.out.println(globalName);
53+
}
54+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package basic.c10_extras;
2+
3+
/*
4+
Clase 8 - Manejo de excepciones, depuración y extras (28/05/2025)
5+
Vídeo: https://www.twitch.tv/videos/2471305243
6+
*/
7+
8+
public class ExtrasExample {
9+
10+
public static void main(String[] args) {
11+
12+
Extras.test();
13+
System.out.println(Extras.globalName);
14+
}
15+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package basic.c10_extras;
2+
3+
/*
4+
Clase 8 - Manejo de excepciones, depuración y extras (28/05/2025)
5+
Vídeo: https://www.twitch.tv/videos/2471305243
6+
*/
7+
8+
public class ExtrasExercises {
9+
10+
public static void main(String[] args) {
11+
12+
// 1. Crea una variable de tipo String inicializada como null y verifica que no esté vacía antes de usarla.
13+
14+
// 2. Escribe un programa que lea el nombre y edad del usuario usando Scanner.
15+
16+
// 3. Declara una constante final llamada MAX_SCORE con valor 100 y muéstrala.
17+
18+
// 4. Crea una variable global message y otra local message dentro del método main(). Muestra ambas.
19+
20+
// 5. Usa import java.util.Scanner; para leer un número y mostrar si es positivo o negativo.
21+
22+
// 6. Declara una variable static en una clase y accede a ella desde main() sin crear un objeto.
23+
24+
// 7. Importa java.util.Random y genera un número aleatorio del 1 al 10.
25+
26+
// 8. Crea una clase con comentarios adecuados explicando cada sección del código.
27+
28+
// 9. Define una clase User con una constante APP_NAME, una variable global username y una función que imprima ambas.
29+
30+
// 10. Haz debug del código implementado haciendo uso de sus diferentes herramientas.
31+
}
32+
}

0 commit comments

Comments
 (0)