0Pricing
Swift Academy · Leçon

Types d’erreurs personnalisés avec LocalizedError

Concevoir de riches énumérations d’erreurs conformes à Error et LocalizedError.

Types d’erreurs personnalisés avec LocalizedError est une leçon Swift Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Swift Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Swift Academy comprend 4 leçons au total.

Bienvenue

Des types d’erreurs bien conçus contiennent suffisamment de contexte pour diagnostiquer les problèmes et afficher des messages compréhensibles pour l’utilisateur. `LocalizedError` fournit les points d’extension nécessaires.

Énumération d’erreurs de base

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

Protocole LocalizedError

```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 et recoverySuggestion

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

Contexte d’erreur imbriqué

```swift enum APIError: Error { case server(statusCode: Int, body: String) case decode(underlying: DecodingError) case timeout } ``` Conservez l’erreur sous-jacente afin qu’elle puisse être consignée ou affichée dans les versions de débogage.

Lever des erreurs personnalisées

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

Intercepter des cas précis

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

Schéma d’enrobage des erreurs

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

Erreurs Equatable pour les vérifications

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

Vérification rapide

Quel protocole fournit `errorDescription` pour les messages d’erreur destinés à l’utilisateur ?

Récapitulatif

Points essentiels : • Faites adopter `LocalizedError` aux erreurs pour fournir des messages destinés à l’utilisateur • Utilisez des valeurs associées pour transporter le contexte (codes d’état, dates) • Enveloppez les erreurs de bas niveau dans des énumérations propres au domaine • Les erreurs `Equatable` simplifient les tests unitaires • `CustomDebugStringConvertible` facilite le débogage Suite : faire le lien entre Result et async/await.

Questions Fréquemment Posées

La leçon « Types d’erreurs personnalisés avec LocalizedError » est-elle gratuite ?

Oui — le texte complet de « Types d’erreurs personnalisés avec LocalizedError » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Swift Academy, passe à CoddyKit PRO. Le cours Swift Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Types d’erreurs personnalisés avec LocalizedError » ?

Concevoir de riches énumérations d’erreurs conformes à Error et LocalizedError. Tu pratiques Swift Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Swift Academy ?

Aucune expérience préalable n'est requise. Swift Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Types d’erreurs personnalisés avec LocalizedError » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Swift Academy ?

Oui. Chaque leçon Swift Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Fondamentaux de Result
  2. map et flatMap sur Result
  3. Types d’erreurs personnalisés avec LocalizedError
  4. Relier Result à async/await
← Retour à Swift Academy