Manejo de Excepciones y Control de Errores
20 desafíos graduales para dominar el control de errores (try / catch o try / except), validación de entradas, reintentos y software a prueba de caídas.
try:
n = int(input())
except ValueError:
print("Inválido")try {
int n = sc.nextInt();
} catch (Exception e) {
System.out.println();
}try {
int n = int.Parse(s);
} catch (FormatException) {
Console.WriteLine();
}try {
let n = Number(str);
} catch (err) {
console.error(err);
}📋 Listado Rápido de Excepciones (1 al 20)
20 ítems🎯 Resolución Guiada y Checklists de Progreso
01Mecanismos Básicos1. Provocar y capturar una excepción
0 / 5
1. Provocar y capturar una excepción
Enunciado: Provocar intencionalmente un error de conversión o división e interceptarlo con un bloque try/catch (try/except en Python) imprimiendo un aviso.
02Mecanismos Básicos2. Capturar entrada no numérica
0 / 5
2. Capturar entrada no numérica
Enunciado: Solicitar un número entero al usuario y capturar el error si ingresa texto, evitando que el programa se detenga abruptamente.
03Mecanismos Básicos3. Controlar división por cero
0 / 5
3. Controlar división por cero
Enunciado: Solicitar dividendo y divisor; si el divisor es 0, capturar la excepción específica de división por cero y mostrar un aviso.
04Mecanismos Básicos4. Convertir texto a número de forma segura
0 / 5
4. Convertir texto a número de forma segura
Enunciado: Crear un algoritmo que intente parsear una cadena a decimal; si falla, retornar 0.0 y notificar el formato inválido.
05Mecanismos Básicos5. Acceder a una posición o índice inválido
0 / 5
5. Acceder a una posición o índice inválido
Enunciado: Intentar acceder al índice 10 de un arreglo de 3 elementos dentro de un bloque try para capturar el error de índice fuera de rango.
06Validación de Datos6. Validar edad válida
0 / 5
6. Validar edad válida
Enunciado: Solicitar la edad del usuario; si ingresa letras o un número negativo, capturar la excepción o lanzar un aviso hasta obtener un valor coherente.
07Validación de Datos7. Validar número dentro de un rango [1, 100]
0 / 5
7. Validar número dentro de un rango [1, 100]
Enunciado: Solicitar un entero entre 1 y 100; capturar errores de tipo y notificar si el valor está fuera del rango establecido.
08Validación de Datos8. Validar nota académica (1.0 a 7.0 / 0 a 100)
0 / 5
8. Validar nota académica (1.0 a 7.0 / 0 a 100)
Enunciado: Ingresar una nota con decimales controlando excepciones de tipeo y asegurando que la nota sea válida antes de calcular promedios.
09Validación de Datos9. Validar opción de menú numérico
0 / 5
9. Validar opción de menú numérico
Enunciado: Leer la opción elegida por el usuario para un menú; si la entrada no es un entero válido, evitar la caída del sistema.
10Validación de Datos10. Manejar múltiples excepciones en un mismo bloque
0 / 5
10. Manejar múltiples excepciones en un mismo bloque
Enunciado: Construir un bloque try que pueda lanzar tanto error de formato no numérico como error de división por cero, capturando cada uno por separado.
11Funciones Seguras11. Función que valida un número entero
0 / 5
11. Función que valida un número entero
Enunciado: Crear la función solicitarEntero(mensaje) que pida un dato repetidamente con un bucle hasta que el usuario ingrese un entero válido.
12Funciones Seguras12. Función de división segura
0 / 5
12. Función de división segura
Enunciado: Crear la función dividirSeguro(a, b) que realice la división dentro de un try y retorne null/None o 0 si ocurre una división por cero.
13Funciones Seguras13. Función para solicitar edad con reintento
0 / 5
13. Función para solicitar edad con reintento
Enunciado: Crear la función pedirEdad() que reintente la lectura mediante un ciclo hasta que se ingrese un entero entre 0 y 120.
14Funciones Seguras14. Función para solicitar opción de menú protegida
0 / 5
14. Función para solicitar opción de menú protegida
Enunciado: Crear la función obtenerOpcion(maxOpciones) que capture cualquier error tipográfico y reitere la solicitud hasta recibir una opción válida.
15Funciones Seguras15. Menú principal protegido contra caídas
0 / 5
15. Menú principal protegido contra caídas
Enunciado: Implementar un bucle de menú interactivo completo envuelto en funciones que nunca finalice por errores de entrada del usuario.
16Estructuras y Excepciones16. Operaciones seguras con arreglos
0 / 5
16. Operaciones seguras con arreglos
Enunciado: Crear la función obtenerElementoSeguro(arreglo, indice) que capture IndexOutOfBounds / IndexError y retorne un valor por defecto.
17Estructuras y Excepciones17. Búsqueda segura en posiciones inexistentes
0 / 5
17. Búsqueda segura en posiciones inexistentes
Enunciado: Recorrer un arreglo consultando posiciones dinámicas con try/catch para registrar intentos fallidos sin detener la iteración.
18Estructuras y Excepciones18. Acceso seguro a claves de diccionarios
0 / 5
18. Acceso seguro a claves de diccionarios
Enunciado: Crear la función obtenerValorClave(diccionario, clave) que intente leer la clave y capture KeyError / Exception si no existe.
19Estructuras y Excepciones19. Procesar colección ignorando datos inválidos
0 / 5
19. Procesar colección ignorando datos inválidos
Enunciado: Dada una lista de cadenas (ej. ["10", "20", "abc", "30"]), intentar convertirlas a enteros acumulando la suma de los datos válidos e ignorando los erróneos.
20Desafío Integrador20. Sistema de Gestión Robusto e Inmune a Errores
0 / 5
20. Sistema de Gestión Robusto e Inmune a Errores
Enunciado: Crear un mini-sistema (ej. Registro de Alumnos o Productos) con menú CRUD que maneje lecturas de teclado, conversiones, rangos y búsquedas en arreglos/diccionarios sin caerse jamás por excepciones.


