0Pricing
Swift Academy · Lección

do/catch y definición de errores (enums)

Defina enums de errores, láncelos desde funciones y gestione los fallos con patrones do/catch (casos específicos, catch let y catch genérico).

do/catch y definición de errores (enums) es una lección gratuita de Swift Academy en CoddyKit. Esta es la lección 2 de 3. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Swift Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Swift Academy incluye 3 lecciones en total.

Descripción general

Esta lección se centra en definir errores tipados y gestionarlos con do/catch. Lanzará un enum y capturará casos específicos para establecer rutas claras de recuperación.

Enum de error

Defina un enum personalizado que conforme a Error. Los valores asociados proporcionan contexto útil.

enum FileError: Error {
    case notFound(path: String)
    case unreadable(path: String)
    case corrupted
}
print("Defined FileError enum")

Conceptos básicos de throws

Marque con throws las funciones que pueden fallar. Lance casos específicos cuando no se cumplan las precondiciones.

func loadText(from path: String) throws -> String {
    if path.isEmpty { throw FileError.notFound(path: "(empty)") }
    if !path.hasSuffix(".txt") { throw FileError.unreadable(path: path) }
    return "Contents of " + path
}
print("Ready to throw on bad input")

Capturas específicas

Use do/try/catch. Coloque primero los casos catch específicos y después un catch general para el resto.

do {
    let text = try loadText(from: "notes.txt")
    print(text)
} catch FileError.notFound(let p) {
    print("Missing file at:", p)
} catch FileError.unreadable(let p) {
    print("Cannot read:", p)
} catch {
    print("Other error:", error)
}

catch let y switch

Use catch let error as YourError y, a continuación, switch para generar mensajes fáciles de entender para el usuario.

do {
    _ = try loadText(from: "")
} catch let error as FileError {
    switch error {
    case .notFound(let p): print("not found:", p)
    case .unreadable(let p): print("unreadable:", p)
    case .corrupted: print("file corrupted")
    }
} catch {
    print("unexpected:", error.localizedDescription)
}

Recuperar frente a volver a lanzar

Decida si va a recover (devolver un valor alternativo) o rethrow el error para que lo gestione quien llamó. Mantenga las reglas sencillas y predecibles.

func mustLoad(_ path: String) throws -> String {
    do {
        return try loadText(from: path)
    } catch FileError.notFound {
        // simple recovery: default content
        return "New file template"
    } catch {
        // escalate unknown issues
        throw error
    }
}
print(try? mustLoad("report.txt") ?? "(nil)")

Patrón de errores personalizados

Comprobación rápida: ¿Cuál es la forma idiomática de definir errores personalizados?

Resumen

Resumen: Defina errores tipados con un enum que conforme a Error, throw casos precisos y gestiónelos mediante do/catch, colocando primero las ramas específicas y al final la genérica.

Preguntas frecuentes

¿La lección «do/catch y definición de errores (enums)» es gratis?

Sí — el texto completo de «do/catch y definición de errores (enums)» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Swift Academy, actualiza a CoddyKit PRO. El curso de Swift Academy incluye 3 lecciones en total.

¿Qué aprenderé en «do/catch y definición de errores (enums)»?

Defina enums de errores, láncelos desde funciones y gestione los fallos con patrones do/catch (casos específicos, catch let y catch genérico). Practicas Swift Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Swift Academy?

No se requiere experiencia previa. Swift Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 3.

¿Cuánto tiempo toma la lección «do/catch y definición de errores (enums)»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Swift Academy?

Sí. Cada lección de Swift Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Encadenamiento opcional y fundamentos del manejo de errores
  2. do/catch y definición de errores (enums)
  3. Tipos Result: Result
← Volver a Swift Academy