Heim  >  Artikel  >  Backend-Entwicklung  >  Wie definiere ich die Ausnahmeklasse in der Ausnahmebehandlung von C++-Funktionen?

Wie definiere ich die Ausnahmeklasse in der Ausnahmebehandlung von C++-Funktionen?

WBOY
WBOYOriginal
2024-04-15 21:45:011091Durchsuche

In C++ definierte Ausnahmeklasse: Eine neue Klasse muss von std::Exception abgeleitet werden und die virtuelle Funktion „what“ überschreiben, um Ausnahmemeldungen bereitzustellen, wie im Beispiel gezeigt. Die Klasse „MyException“ überschreibt „what“, um Ausnahmemeldungen zurückzugeben. Im tatsächlichen Fall löst die Divide-Funktion eine std::runtime_error-Ausnahme aus, und die Hauptfunktion erfasst die Ausnahmemeldung und gibt sie aus.

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

Ausnahmeklassendefinition in der C++-Funktionsausnahmebehandlung

In C++ wird die Ausnahmeklasse zur Behandlung von Funktionsausnahmen verwendet. Um eine Ausnahmeklasse zu definieren, leiten Sie eine neue Klasse von der Klasse std::Exception ab und überschreiben Sie die virtuelle Funktion what, um die Ausnahmemeldung bereitzustellen. 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

Das Folgende ist ein Beispiel für die Definition einer Ausnahmeklasse: 🎜rrreee🎜In diesem Beispiel leitet sich die Klasse MyException von der Klasse std::Exception ab und überschreibt den welche Funktion, um eine Ausnahmemeldung zurückzugeben. Die Nachricht kann im Konstruktor festgelegt werden. 🎜🎜Praktischer Fall🎜🎜Das Folgende ist ein Beispiel für eine Funktion, die die Ausnahmeklasse verwendet: 🎜rrreee🎜Im obigen Beispiel löst die Funktion divide einen std::runtime_errorAusnahme. Die Funktion <code>main verwendet einen Block try-catch, um Ausnahmen abzufangen und die Ausnahmemeldung zu drucken. 🎜

Das obige ist der detaillierte Inhalt vonWie definiere ich die Ausnahmeklasse in der Ausnahmebehandlung von C++-Funktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn