Contenido del curso
Fundamentos de programación iOS
- 3

Variables, constantes y tipos de datos en Swift
18:55 min - 4

Condicionales en Swift con if y else
16:58 min - 5

Funciones en Swift con parámetros y return
10:37 min - 6

Variables opcionales en Swift
09:29 min - 7

Arrays en Swift: declara, accede e inserta
10:28 min - 8

Eliminar y buscar elementos en arrays Swift
05:41 min - 9

Sets en Swift: sin orden ni duplicados
07:14 min - 10

Operaciones entre sets en Swift
05:22 min - 11

Diccionarios en Swift para datos complejos
10:54 min - 12

Ciclo while en Swift desde cero
06:48 min - 13

Ciclo for en Swift para buscar datos
09:38 min - 14

Batalla Pokémon con while en Swift
10:45 min
POO en iOS
- 15

Qué es la programación orientada a objetos
06:56 min - 16

Creación de Structs en Swift para Gestión de Materias
11:16 min - 17

Herencia en Swift: class vs struct
13:27 min - 18

Uso de Enumerables (Enums) en Swift para Datos Limitados
09:27 min - 19

Protocolos en Swift como contratos de código
15:12 min - 20

map, filter y reduce con arreglos en Swift
10:53 min - 21

Prueba final del Students Manager en Swift
05:40 min
Manejo de errores y programación segura
Programación en el ecosistema de Apple
Manejo de errores con do, try y catch
Resumen
Manejar errores en Swift se vuelve sencillo cuando entiendes cómo funcionan do, try y catch. Estas tres palabras clave te permiten capturar fallos inesperados, controlar el flujo de tu app y darle una mejor experiencia al usuario cuando algo no sale como esperabas.
¿Qué hace la palabra try en Swift?
Cuando una función lanza errores con throws, Swift te obliga a usar try al llamarla. Lo que hace try es decirle al compilador: voy a intentar ejecutar esta línea. Si todo sale bien, el código continúa. Si algo falla y nadie maneja el error, la ejecución se detiene de golpe [02:10].
¿Para qué sirve try en Swift? Es la palabra clave que marca el llamado a una función que puede lanzar errores. Sin
try, el compilador no te deja invocar funciones marcadas conthrows.
¿Cuáles son las tres formas de usar try?
Swift te ofrece tres variantes y cada una se comporta distinto frente a un error:
trya secas: si la función lanza un error y no hay uncatchque lo capture, el playground o la app termina con el mensaje de que se lanzó un error no capturado.try!con signo de admiración (force try): si ocurre un error, provoca un crash inmediato. Xcode marca la línea como interrumpida sin darte muchos detalles.try?con signo de interrogación (optional try): si la función falla, el resultado se convierte ennily el programa sigue corriendo como si nada.
El try? puede parecer la salida fácil, pero usarlo en funciones core de tu sistema es peligroso. Vas a ocultar errores que más adelante se convierten en bugs raros o crashes en partes del código que parecían sanas.
¿Cómo capturar errores con do catch?
Aquí entra la combinación que de verdad te da control. Abres un bloque do con tus llamados a funciones que usan try, y agregas un bloque catch justo después. Si alguna línea dentro del do lanza un error, la ejecución salta inmediatamente al catch y ahí decides qué hacer [05:30].
Un ejemplo mínimo se ve así:
swift do { try insertarEstudiante(estudiante) } catch { print(error.localizedDescription) }
La propiedad localizedDescription viene del protocolo Error y de LocalizedError. Por eso, cuando defines tu propio enum de errores como ManagerError implementando esos protocolos, puedes mostrar mensajes claros y personalizados al usuario.
¿Cuándo se ejecuta el bloque catch? Solo cuando alguna instrucción dentro del
dolanza un error. Si todo se ejecuta sin fallos, elcatchse ignora por completo.
¿Qué pasa si tengo varios try dentro del mismo do?
Un solo bloque do puede contener varios try seguidos. Pero hay un detalle importante: en cuanto uno de ellos lanza un error, el resto de las líneas dentro de ese do no se ejecutan. El control salta directo al catch.
Esto te deja dos caminos como desarrollador:
- Agrupar todos los
tryen un mismodo catchcuando quieres que un error detenga toda la secuencia. - Crear un
do catchindependiente para cada función cuando necesitas que cada llamado se maneje por separado y los demás sigan corriendo.
La decisión depende de la lógica de tu app. Por ejemplo, si insertar un estudiante falla pero igual quieres asignar materias y generar el reporte, conviene separar los bloques.
¿Por qué importa manejar bien los errores y no solo silenciarlos?
Capturar errores no es un capricho del lenguaje. Es lo que te permite mostrarle al usuario un mensaje útil del estilo ha ocurrido un error, inténtalo más tarde en lugar de un crash silencioso. Tu app se siente más profesional y tu código se vuelve más mantenible.
Algunas buenas prácticas que conviene cargar siempre contigo:
- Mantén tu Xcode en la última versión estable, evita betas y versiones viejas para estar al nivel de la industria.
- Verifica la versión de Swift que usas y compárala con los cambios recientes del lenguaje.
- Documenta tu código con comentarios claros para que tu yo del futuro o cualquier otro desarrollador entienda qué hiciste.
- Usa nomenclatura consistente al definir variables, funciones y clases.
Con esto ya tienes el panorama completo para trabajar opcionales y errores de forma segura en Swift. ¿Tú sueles usar try? con frecuencia o prefieres siempre el do catch? Cuéntame cómo lo manejas en tus proyectos.