Utilisez la gestion des exceptions et la programmation de modèles pour implémenter la gestion générique des erreurs. 1. Gestion des exceptions : utilisez le mécanisme try-catch-throw pour lancer des exceptions dans les fonctions. 2. Programmation de modèles : créez un code générique pouvant être utilisé pour tout type d'erreur, y compris des gestionnaires d'erreurs génériques capables de gérer tout type d'erreur. 3. Gestion générique des erreurs : utilisez les fonctions de modèle pour fournir une gestion personnalisée de différents types d'exceptions et relancer les exceptions inconnues.
Exceptions fonctionnelles C++ et programmation de modèles : gestion générique des erreurs
Introduction
En C++, les exceptions sont un mécanisme puissant pour gérer les erreurs dans les fonctions. Lorsqu'une fonction détecte une erreur, elle peut lever une exception, permettant ainsi à l'erreur d'être détectée et gérée. La programmation de modèles nous permet de créer du code générique pouvant être utilisé pour n'importe quel type. Cet article explique comment utiliser les exceptions et la programmation de modèles pour la gestion générique des erreurs.
Gestion des exceptions
La gestion des exceptions en C++ utilise try
、catch
和 throw
关键字实现。当函数检测到错误时,它可以使用 throw
关键字抛出一个异常。异常类型是一个派生自 std::exception
classes.
L'exemple suivant illustre la gestion des exceptions :
void divide(int num1, int num2) { try { if (num2 == 0) { throw std::invalid_argument("Divisor cannot be 0"); } int result = num1 / num2; std::cout << result << std::endl; } catch (std::invalid_argument& e) { std::cout << e.what() << std::endl; } }
Programmation de modèles
La programmation de modèles nous permet de créer du code générique qui peut être utilisé pour n'importe quel type. Les fonctions et les classes peuvent être paramétrées à l'aide de modèles.
L'exemple suivant illustre les fonctions du modèle :
template<typename T> T max(T a, T b) { return (a > b) ? a : b; }
Gestion générique des erreurs
Nous pouvons utiliser la gestion des exceptions et la programmation de modèles pour créer un gestionnaire d'erreurs générique capable de gérer tout type d'erreur.
L'exemple suivant montre une fonction générique de gestion des erreurs :
template<typename T> void handleError(T error) { if (std::is_same<T, std::invalid_argument>::value) { std::cout << "Invalid argument: " << error.what() << std::endl; } else if (std::is_same<T, std::out_of_range>::value) { std::cout << "Out of range: " << error.what() << std::endl; } else { throw error; } }
Cas pratique
L'exemple suivant montre comment utiliser la gestion générique des erreurs dans une fonction :
void processData(const std::vector<int>& data) { try { // ... 处理数据 ... if (// 检测到错误) { throw std::invalid_argument("Invalid data"); } } catch (std::exception& e) { handleError(e); } }
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!