Maison  >  Article  >  développement back-end  >  Comment définir la classe d'exception dans la gestion des exceptions des fonctions C++ ?

Comment définir la classe d'exception dans la gestion des exceptions des fonctions C++ ?

WBOY
WBOYoriginal
2024-04-15 21:45:011080parcourir

Classe d'exception définie en C++ : une nouvelle classe doit être dérivée de std::exception et remplacer la fonction virtuelle quoi pour fournir des messages d'exception ; comme indiqué dans l'exemple, la classe MyException remplace ce qui doit renvoyer des messages d'exception. Dans le cas réel, la fonction Divide renvoie une exception std::runtime_error, et la fonction main capture et imprime le message d'exception.

C++ 函数异常处理中的异常类如何定义?

Définition de la classe d'exception dans la gestion des exceptions de fonction C++

En C++, la classe d'exception est utilisée pour gérer les exceptions de fonction. Pour définir une classe d'exception, dérivez une nouvelle classe de la classe std::exception et remplacez la fonction virtuelle what pour fournir le message d'exception. std::exception 类派生一个新类,并重写 what 虚函数以提供异常消息。

以下是一个定义异常类的示例:

#include <exception>

class MyException : public std::exception {
public:
  MyException(const char* message) : std::exception(message) {}
  MyException(const std::string& message) : std::exception(message.c_str()) {}
  const char* what() const noexcept override { return message_.c_str(); }

private:
  std::string message_;
};

在这个示例中,MyException 类从 std::exception 类派生,并重写了 what 函数以返回异常消息。消息可以在构造函数中设置。

实战案例

以下是一个使用异常类的函数的示例:

#include <exception>
#include <iostream>

void divide(int numerator, int denominator) {
  if (denominator == 0) {
    throw std::runtime_error("Cannot divide by zero");
  }
  std::cout << "Result: " << numerator / denominator << std::endl;
}

int main() {
  try {
    divide(10, 0);  // 抛出异常
  } catch (const std::exception& e) {  // 捕获异常
    std::cerr << "Error: " << e.what() << std::endl;
  }
  return 0;
}

在上述示例中,divide 函数在除数为零时抛出一个 std::runtime_error 异常。main 函数使用 try-catch

Ce qui suit est un exemple de définition d'une classe d'exception : 🎜rrreee🎜Dans cet exemple, la classe MyException dérive de la classe std::exception et remplace le quelle fonction pour renvoyer un message d'exception. Le message peut être défini dans le constructeur. 🎜🎜Cas pratique🎜🎜Ce qui suit est un exemple de fonction utilisant la classe d'exception : 🎜rrreee🎜Dans l'exemple ci-dessus, la fonction divide renvoie un std::runtime_errorException. La fonction <code>main utilise un bloc try-catch pour intercepter les exceptions et imprimer le message d'exception. 🎜

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