0Pricing
Swift Academy · Lektion

Logging, assert/precondition/fatalError

Protokollieren Sie den Zustand mit print/debugPrint und wählen Sie für Invarianten zwischen assert (nur im Debug-Modus), precondition (auch im Release-Modus geprüft) und fatalError (Absturz).

Logging, assert/precondition/fatalError ist eine kostenlose Swift Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 2. 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 2 Lektionen.

Werkzeugkasten für Diagnosen

Verwenden Sie einfaches Logging, um den Zustand zu sehen, und setzen Sie Annahmen mit assert, precondition und fatalError durch.

  • assert: Prüfungen nur im Debug-Modus
  • precondition: wird auch in Release geprüft
  • fatalError: bricht sofort ab

Leichtgewichtiges Logging

print ist gut lesbar, während debugPrint mehr Details ausgibt und sich damit für das Debugging eignet.

let user = ["name": "Ana", "role": "admin"]
print("User:", user)            // user-friendly
debugPrint("User:", user)       // includes type details when available

let point = (x: 3, y: 5)
print("Point:", point)
debugPrint("Point:", point)

assert (nur im Debug-Modus)

assert beendet das Programm in Debug, wenn die Bedingung falsch ist. In optimierten Release-Builds wird es entfernt.

// Even numbers only (demo)
func half(of x: Int) -> Int {
    assert(x % 2 == 0, "Expected even number, got \(x)")
    return x / 2
}
print(half(of: 8))   // OK in Debug/Release
// In Debug, failing the assert would stop and print the message.
// In Release, assert checks are disabled by default.

precondition (auch in Release geprüft)

precondition überprüft kritische Anforderungen in Debug und Release. Verwenden Sie es für Programmierfehler, die niemals auftreten dürfen.

// Safe divide with required precondition
func safeDivide(_ a: Int, by b: Int) -> Int {
    precondition(b != 0, "Divider must be nonzero")
    return a / b
}
print(safeDivide(10, by: 2))    // 5
// If called with 0, precondition fails in Debug and Release.

fatalError (sofortiger Abbruch)

fatalError beendet die Ausführung sofort und gibt eine Meldung aus. Verwenden Sie es während der Entwicklung für unerreichbare Codepfade oder noch nicht implementierte Funktionen.

enum FileKind { case text, binary }

func open(kind: FileKind) {
    switch kind {
    case .text:
        print("Open text mode")
    case .binary:
        print("Open binary mode")
    // If we ever add a new case and forget to handle it, we could use:
    // default: fatalError("Unsupported file kind")
    }
}
open(kind: .text)

Wann welches verwenden

Richtlinien:

  • print/debugPrint für schnelle Logs verwenden und später entfernen oder über Flags steuern.
  • assert für Prüfungen durch Entwickler, die nur im Debug-Modus erfolgen sollen.
  • precondition verwenden, wenn das Programm bei einer fehlgeschlagenen Anforderung in keinem Build fortfahren darf.
  • fatalError für unerreichbare oder nicht implementierte Pfade.

Auch in Release geprüfte Diagnose

Kurzer Check: Welche Diagnose wird auch in Release-Builds geprüft?

Zusammenfassung

Zusammenfassung: Protokollieren Sie mit print/debugPrint, sichern Sie Invarianten mit assert (Debug) und precondition (auch Release) ab und verwenden Sie fatalError für tatsächlich unerreichbare Zustände.

Häufig gestellte Fragen

Ist die Lektion „Logging, assert/precondition/fatalError“ kostenlos?

Ja — der vollständige Text von „Logging, assert/precondition/fatalError“ 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 2 Lektionen.

Was lerne ich in „Logging, assert/precondition/fatalError“?

Protokollieren Sie den Zustand mit print/debugPrint und wählen Sie für Invarianten zwischen assert (nur im Debug-Modus), precondition (auch im Release-Modus geprüft) und fatalError (Absturz). 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 2.

Wie lange dauert die Lektion „Logging, assert/precondition/fatalError“?

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. XCTest-Grundlagen (Targets, Fixtures)
  2. Logging, assert/precondition/fatalError
← Zurück zu Swift Academy