Maison > développement back-end > C++ > Comment gérer plusieurs exceptions en C++ ?

Comment gérer plusieurs exceptions en C++ ?

WBOY
Libérer: 2024-06-06 13:10:58
original
892 Les gens l'ont consulté

Les méthodes C++ de gestion de plusieurs exceptions incluent l'utilisation de blocs try-catch, qui permettent d'intercepter et de gérer les exceptions pour des types d'exceptions spécifiques, ou l'utilisation de blocs try et d'un bloc catch (...) pour intercepter tous les types d'exceptions. Dans le cas réel, le bloc try tente l'opération de division, capture les types d'exception invalid_argument et exception via deux blocs catch et génère les informations d'erreur correspondantes.

Comment gérer plusieurs exceptions en C++ ?

Comment gérer plusieurs exceptions en C++

C++ fournit une variété de méthodes pour gérer plusieurs exceptions, notamment :

try-catch block

try {
  // 代码可能引发异常
} catch (const std::exception& e) {
  // 处理 std::exception 异常
} catch (const std::runtime_error& e) {
  // 处理 std::runtime_error 异常
}
Copier après la connexion

catch(...)

try {
  // 代码可能引发异常
} catch (...) {
  // 处理所有异常
}
Copier après la connexion

typeid

try {
  // 代码可能引发异常
} catch (const std::exception& e) {
  if (typeid(e) == typeid(std::runtime_error)) {
    // 处理 std::runtime_error 异常
  }
}
Copier après la connexion

Cas pratique

L'exemple suivant montre l'utilisation de blocs try-catch pour gérer plusieurs exceptions :

#include <iostream>
#include <exception>

using namespace std;

int main() {
  try {
    int x = 10;
    int y = 0;

    cout << "x / y = " << x / y << endl;
  } catch (const invalid_argument& e) {
    cout << "Division by zero error: " << e.what() << endl;
  } catch (const exception& e) {
    cout << "Error: " << e.what() << endl;
  }

  return 0;
}
Copier après la connexion

Dans cet exemple :

  • Les tentatives d'exécution du bloc try peuvent générer des exceptions code. Le bloc try 块尝试执行可能引发异常的代码。
  • catch (const invalid_argument& e) 块处理 invalid_argument 异常。
  • catch (const exception& e)
  • catch (const invalid_argument& e) gère les exceptions invalid_argument. Le bloc

catch (const exception& e) gère toutes les autres exceptions.

🎜🎜L'exécution de ce programme produira les résultats suivants : 🎜
Division by zero error: invalid argument
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal