0Pricing
Swift Academy · Lektion

Benutzerdefinierte Fehlertypen mit LocalizedError

Entwerfen Sie aussagekräftige Fehler-Enums, die Error und LocalizedError entsprechen.

Benutzerdefinierte Fehlertypen mit LocalizedError ist eine kostenlose Swift Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. 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 4 Lektionen.

Willkommen

Gut entworfene Fehlertypen enthalten genügend Kontext, um Probleme zu diagnostizieren und benutzerfreundliche Meldungen anzuzeigen. `LocalizedError` stellt dafür die erforderlichen Erweiterungspunkte bereit.

Grundlegende Fehler-Enumeration

```swift enum AuthError: Error { case invalidCredentials case accountLocked(until: Date) case networkUnavailable } ```

LocalizedError-Protokoll

```swift extension AuthError: LocalizedError { var errorDescription: String? { switch self { case .invalidCredentials: return "Username or password is incorrect." case .accountLocked(let date): return "Account locked until \(date.formatted())." case .networkUnavailable: return "No internet connection." } } } print(AuthError.invalidCredentials.localizedDescription) ```

failureReason und recoverySuggestion

```swift extension AuthError: LocalizedError { var failureReason: String? { "Authentication service rejected the request." } var recoverySuggestion: String? { "Reset your password or contact support." } } ```

Verschachtelter Fehlerkontext

```swift enum APIError: Error { case server(statusCode: Int, body: String) case decode(underlying: DecodingError) case timeout } ``` Geben Sie den zugrunde liegenden Fehler weiter, damit er protokolliert oder in Debug-Builds angezeigt werden kann.

Eigene Fehler werfen

```swift func login(user: String, pass: String) throws -> Token { guard !user.isEmpty && !pass.isEmpty else { throw AuthError.invalidCredentials } // ... } ```

Bestimmte Fälle abfangen

```swift do { let token = try login(user: u, pass: p) } catch AuthError.invalidCredentials { showAlert("Bad credentials") } catch AuthError.accountLocked(let date) { showAlert("Locked until \(date)") } catch { showAlert(error.localizedDescription) } ```

CustomDebugStringConvertible

```swift extension AuthError: CustomDebugStringConvertible { var debugDescription: String { "AuthError.\(self)" } } ```

Muster zum Verpacken von Fehlern

```swift enum AppError: Error { case auth(AuthError) case api(APIError) case unknown(Error) } func process() throws { do { try login() } catch let e as AuthError { throw AppError.auth(e) } catch { throw AppError.unknown(error) } } ```

Equatable-Fehler für Tests

```swift enum FetchError: Error, Equatable { case notFound case serverError(code: Int) } XCTAssertEqual(error, FetchError.notFound) ```

Kurztest

Welches Protokoll stellt `errorDescription` für benutzerbezogene Fehlermeldungen bereit?

Zusammenfassung

Wichtige Erkenntnisse: • Lassen Sie Fehler dem Protokoll `LocalizedError` entsprechen, um benutzerbezogene Meldungen bereitzustellen • Verwenden Sie zugehörige Werte, um Kontext wie Statuscodes und Datumsangaben zu speichern • Verpacken Sie Fehler niedrigerer Ebenen in domänenspezifischen Enumerationen • `Equatable`-Fehler vereinfachen Unit-Tests • `CustomDebugStringConvertible` unterstützt Sie beim Debuggen Als Nächstes: Result mit async/await verbinden.

Häufig gestellte Fragen

Ist die Lektion „Benutzerdefinierte Fehlertypen mit LocalizedError“ kostenlos?

Ja — der vollständige Text von „Benutzerdefinierte Fehlertypen mit LocalizedError“ 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 4 Lektionen.

Was lerne ich in „Benutzerdefinierte Fehlertypen mit LocalizedError“?

Entwerfen Sie aussagekräftige Fehler-Enums, die Error und LocalizedError entsprechen. 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 3 von 4.

Wie lange dauert die Lektion „Benutzerdefinierte Fehlertypen mit LocalizedError“?

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. Grundlagen von Result
  2. map und flatMap auf Result
  3. Benutzerdefinierte Fehlertypen mit LocalizedError
  4. Result mit async/await verbinden
← Zurück zu Swift Academy