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

Comment gérer plusieurs exceptions en C++ ?

WBOY
WBOYoriginal
2024-06-06 13:10:58914parcourir

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 异常
}

catch(...)

try {
  // 代码可能引发异常
} catch (...) {
  // 处理所有异常
}

typeid

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

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;
}

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

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