0Pricing
Swift Academy · Lektion

do/catch und Fehlerdefinitionen (Enums)

Definieren Sie Fehler-Enums, werfen Sie sie aus Funktionen und behandeln Sie Fehlschläge mit do/catch-Mustern (spezifische Fälle, catch let, allgemeines catch).

do/catch und Fehlerdefinitionen (Enums) ist eine kostenlose Swift Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 3. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Swift Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Swift Academy-Kurs umfasst insgesamt 3 Lektionen.

Überblick

Diese Lektion konzentriert sich auf das Definieren typisierter Fehler und ihre Behandlung mit do/catch. Sie werfen ein Enum und fangen bestimmte Fälle ab, um klare Wege zur Fehlerbehebung zu schaffen.

Fehler-Enum

Definieren Sie ein benutzerdefiniertes enum, das dem Protokoll Error entspricht. Assoziierte Werte liefern zusätzlichen hilfreichen Kontext.

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

Grundlagen zum Werfen von Fehlern

Kennzeichnen Sie Funktionen, die fehlschlagen können, mit throws. Werfen Sie bestimmte Fälle, wenn Voraussetzungen nicht erfüllt sind.

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")

Spezifische catch-Zweige

Verwenden Sie do/try/catch. Platzieren Sie spezifische catch-Fälle zuerst und anschließend einen allgemeinen catch-Zweig für alle übrigen Fälle.

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 & switch

Verwenden Sie catch let error as YourError und anschließend switch, um benutzerfreundliche Meldungen zu formulieren.

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)
}

Recover vs rethrow

Entscheiden Sie, ob Sie den Fehler recovern, also einen Ersatzwert zurückgeben, oder ihn mit rethrow an den Aufrufer weitergeben. Halten Sie die Regeln einfach und vorhersehbar.

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)")

Muster für benutzerdefinierte Fehler

Kurzer Check: Wie definiert man benutzerdefinierte Fehler idiomatisch?

Zusammenfassung

Zusammenfassung: Definieren Sie typisierte Fehler mit einem Error-konformen Enum, throwen Sie präzise Fälle und behandeln Sie sie mit do/catch – zuerst mit spezifischen, zuletzt mit einem allgemeinen Zweig.

Häufig gestellte Fragen

Ist die Lektion „do/catch und Fehlerdefinitionen (Enums)“ kostenlos?

Ja — der vollständige Text von „do/catch und Fehlerdefinitionen (Enums)“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Swift Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Swift Academy-Kurs umfasst insgesamt 3 Lektionen.

Was lerne ich in „do/catch und Fehlerdefinitionen (Enums)“?

Definieren Sie Fehler-Enums, werfen Sie sie aus Funktionen und behandeln Sie Fehlschläge mit do/catch-Mustern (spezifische Fälle, catch let, allgemeines catch). Du übst Swift Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Swift Academy zu starten?

Keine Vorkenntnisse erforderlich. Swift Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 3.

Wie lange dauert die Lektion „do/catch und Fehlerdefinitionen (Enums)“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Swift Academy-Lektion Code schreiben und ausführen?

Ja. Jede Swift Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Optionale Verkettung und Grundlagen der Fehlerbehandlung
  2. do/catch und Fehlerdefinitionen (Enums)
  3. Result-Typen – Result
← Zurück zu Swift Academy