Aller au contenu
Module 6

Gestion des erreurs et sûreté

Écrivez du code C++ robuste avec une gestion d'erreurs appropriée — exceptions, garanties de sûreté RAII, types somme et patrons de programmation défensive.

Exceptions et stratégies d'erreur

  1. Exceptions : throw, try, catch

    Comprenez le mécanisme d'exceptions C++ — le déroulement de pile, la hiérarchie d'exceptions standard, les exceptions personnalisées et quand préférer les exceptions aux codes d'erreur.

  2. Garanties de sûreté des exceptions

    Apprenez les trois niveaux de sûreté d'exception — basique, forte et sans levée — et comment le RAII et le copy-and-swap les fournissent.

  3. Stratégies de gestion d'erreurs : choisir la bonne approche

    Comparez les exceptions, les codes d'erreur et std::expected — apprenez quand chaque approche est appropriée et comment gérer les erreurs dans les constructeurs, destructeurs et le code multithreadé.

Sûreté de type et programmation défensive

  1. std::optional, std::variant & std::expected

    Utilisez les types somme C++17/23 pour représenter des valeurs nullables, des unions type-safe et des retours valeur-ou-erreur — éliminant des classes entières de bugs à la compilation.

  2. Sûreté de type, assertions et contrats

    Exploitez le système de types C++ pour prévenir les bugs à la compilation — enums fortement typés, le patron newtype, static_assert, assertions à l'exécution et la fonctionnalité de contrats à venir.

  3. Comprendre et éviter le comportement indéfini

    Apprenez ce qu'est le comportement indéfini, pourquoi il existe, comment les compilateurs l'exploitent pour l'optimisation, et comment le détecter avec les sanitizers et les avertissements du compilateur.