Maison >développement back-end >C++ >Comment fonctionne la gestion des exceptions C : un guide complet sur « throw » et « catch » ?

Comment fonctionne la gestion des exceptions C : un guide complet sur « throw » et « catch » ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-01 14:43:10844parcourir

How Does C   Exception Handling Work: A Complete Guide to `throw` and `catch`?

Comprendre la gestion des exceptions C : un guide complet pour lancer des exceptions

La gestion des exceptions est un mécanisme crucial en programmation qui permet aux développeurs de gérer les erreurs inattendues et maintenir l’intégrité du programme. En C , les exceptions sont programmées à l'aide des instructions throw et catch.

Personnalisation de la gestion des exceptions

Considérons l'exemple suivant :

int compare(int a, int b) {
  // ...
}

Supposons nous voulons lever une exception lorsque a ou b est négatif. Pour y parvenir, nous pouvons utiliser l'exception std::invalid_argument de la bibliothèque standard.

Implémentation de la levée d'une exception

#include <stdexcept>

int compare(int a, int b) {
  if (a < 0 || b < 0) {
    throw std::invalid_argument("received negative value");
  }
}

Dans la fonction de comparaison, nous lancez l'exception std::invalid_argument avec le message d'erreur personnalisé lorsque a ou b est négatif.

Attrapage l'exception

L'exception peut être détectée à l'aide de l'instruction try-catch :

try {
  compare(-1, 3);
} catch (const std::invalid_argument& e) {
  // Handle the exception
}

Dans le bloc catch, nous pouvons effectuer des actions spécifiques ou enregistrer le message d'erreur pour une analyse plus approfondie .

Blocs de capture multiples et exceptions de relance

Nous pouvons avoir plusieurs captures blocs pour gérer différents types d’exceptions séparément. De plus, nous pouvons relancer les exceptions pour laisser une fonction de niveau supérieur gérer l'erreur :

try {
  // ...
} catch (const std::invalid_argument& e) {
  // Handle the exception
  throw;  // Re-throw the exception
}

Attraper toutes les exceptions

Pour intercepter les exceptions de tout type, nous pouvons utiliser l'instruction catch(...) comme fourre-tout :

try {
  // ...
} catch (...) {
  // Handle all exceptions
}

En comprenant et en utilisant efficacement la gestion des exceptions en C, les développeurs peuvent améliorer leur la robustesse du code et améliorer les mécanismes de gestion des erreurs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn