Heim > Backend-Entwicklung > C++ > Hauptteil

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

WBOY
Freigeben: 2024-04-15 21:45:01
Original
1086 Leute haben es durchsucht

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_;
};
Nach dem Login kopieren

在这个示例中,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;
}
Nach dem Login kopieren

在上述示例中,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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage