Journalisation, assert/precondition/fatalError
Consignez l’état avec print/debugPrint et choisissez entre assert (uniquement en mode débogage), precondition (vérifiée dans la version finale) et fatalError (provoque un plantage) pour les invariants.
Journalisation, assert/precondition/fatalError est une leçon Swift Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 2. 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 2 leçons au total.
Boîte à outils de diagnostic
Utilisez une simple journalisation pour observer l’état ; vérifiez vos hypothèses avec des assertions, des préconditions et fatalError.
- assertion : vérifications uniquement en mode débogage
- précondition : également vérifiée dans la version finale
- fatalError : arrêt immédiat
Journalisation légère
L’affichage est lisible ; debugPrint fournit davantage de détails, ce qui est utile pendant le débogage.
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)Assertion (débogage uniquement)
Une assertion arrête le programme en mode Débogage lorsque la condition est fausse ; elle est supprimée dans les versions Finales optimisées.
// 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.Précondition vérifiée en version finale
Une précondition valide les exigences critiques en modes Débogage et Final. Utilisez-la pour les erreurs de programmation qui ne doivent jamais se produire.
// 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 (arrêt immédiat)
fatalError arrête immédiatement l’exécution et signale un message. Utilisez-le pour les chemins de code inaccessibles ou les fonctionnalités non implémentées pendant le développement.
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)Quand utiliser chaque outil
Recommandations :
- affichage/debugPrint pour une journalisation rapide, à supprimer ou à désactiver derrière des indicateurs par la suite.
- assertions pour les vérifications des développeurs limitées au débogage.
- préconditions lorsque le programme ne doit continuer dans aucune version si une exigence échoue.
- fatalError pour les chemins inaccessibles ou non implémentés.
Diagnostic vérifié en version finale
Vérification rapide : quel diagnostic est encore vérifié dans les versions finales ?
Récapitulatif
Récapitulatif : journalisez avec affichage/debugPrint, protégez les invariants avec des assertions en débogage et des préconditions également en version finale, et utilisez fatalError pour les états véritablement inaccessibles.
Questions Fréquemment Posées
La leçon « Journalisation, assert/precondition/fatalError » est-elle gratuite ?
Oui — le texte complet de « Journalisation, assert/precondition/fatalError » 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 2 leçons au total.
Qu'est-ce que j'apprendrai dans « Journalisation, assert/precondition/fatalError » ?
Consignez l’état avec print/debugPrint et choisissez entre assert (uniquement en mode débogage), precondition (vérifiée dans la version finale) et fatalError (provoque un plantage) pour les invariant… 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 2 sur 2.
Combien de temps prend la leçon « Journalisation, assert/precondition/fatalError » ?
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
- Notions de base de XCTest (cibles et appareils de test)
- Journalisation, assert/precondition/fatalError