Maison  >  Article  >  développement back-end  >  Comment intercepter et gérer les exceptions C++ ?

Comment intercepter et gérer les exceptions C++ ?

WBOY
WBOYoriginal
2024-06-05 22:33:59222parcourir

Les exceptions C++ sont un mécanisme de gestion des événements inattendus. Les exceptions sont interceptées via des blocs try et gérées à l'aide de blocs catch. Tout d'abord, utilisez l'instruction throw pour lever une exception. Le type d'exception peut être une classe d'exception de bibliothèque standard ou une classe d'exception personnalisée. Dans un cas pratique, si le diviseur est nul, la fonction Divide générera une erreur d'exécution et l'exception sera interceptée et gérée via le bloc catch de la fonction principale.

Comment intercepter et gérer les exceptions C++ ?

Comment intercepter et gérer les exceptions C++

Les exceptions C++ sont un mécanisme permettant de gérer les événements inattendus. Ils permettent aux programmes de gérer les erreurs avec élégance sans provoquer de plantages.

Attraper les exceptions

Pour intercepter les exceptions, utilisez la syntaxe suivante :

try {
  // 容易抛出异常的代码
} catch (exception& e) {
  // 异常处理代码
}

Les blocs try contiennent du code qui peut générer des exceptions. Si une exception est levée, le contrôle est transféré au bloc catch correspondant. Le paramètre de bloc catch spécifie une référence utilisée pour gérer un type d'exception spécifique. try 块包含可能抛出异常的代码。如果抛出异常,控制权将转移到相应的 catch 块。catch 块参数指定用于处理特定异常类型的引用。

抛出异常

可以通过使用 throw 语句来抛出异常:

throw exception();

exception 可以是标准库异常类(例如 runtime_error)或自定义异常类。

实战案例

考虑以下代码示例:

#include <exception>

int divide(int a, int b) {
  if (b == 0) {
    throw std::runtime_error("除数不能为零");
  }
  return a / b;
}

int main() {
  try {
    int result = divide(10, 0);
    std::cout << result << std::endl;
  } catch (const std::runtime_error& e) {
    std::cout << "错误:" << e.what() << std::endl;
  }
}

main 函数中,我们调用 divide 函数,并尝试捕获可能抛出的任何异常。如果除数为零,divide 函数会抛出一个 runtime_error

Throw exceptions🎜🎜Des exceptions peuvent être levées à l'aide de l'instruction throw : 🎜rrreee🎜exception peut être une classe d'exception de bibliothèque standard (telle que runtime_error code >) ou une classe d’exception personnalisée. 🎜🎜Exemple pratique🎜🎜Considérez l'exemple de code suivant : 🎜rrreee🎜Dans la fonction <code>main, nous appelons la fonction divide et essayons d'intercepter toutes les exceptions qui peuvent être levées. Si le diviseur est zéro, la fonction divide renvoie une runtime_error et affiche un message d'erreur. 🎜

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