📜  C++中的异常标头和示例(1)

📅  最后修改于: 2023-12-03 15:14:03.563000             🧑  作者: Mango

C++中的异常标头和示例

在C++中,可以使用异常处理机制来处理程序中的错误。异常处理是一种机制,它能够在程序运行时检测到错误,然后抛出异常,使程序能够通过异常处理程序来处理这些错误并进行恰当的处理。在C++中,异常处理机制是通过异常标头,如下所示,来实现的。

#include <exception>

异常标头中包含的是 std::exception 类和其他一些与异常处理相关的类和函数。std::exception 类被用作其他异常类型的基类,因此我们需要了解这个类的结构和使用方法。下面是一个 C++ 异常处理的示例代码:

#include <iostream>
#include <exception>
using namespace std;

class MyException : public exception {
  public:
    MyException(const char* message) : msg(message) {}
    const char* what() const throw() {
      return msg.c_str();
    }
  private:
    string msg;
};

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

int main() {
  int a = 10, b = 0, result;
  try {
    result = divide(a, b);
    cout << "结果为:" << result << endl;
  } catch (MyException& e) {
    cout << "发生了一个错误:" << e.what() << endl;
  } catch (exception& e) {
    cout << "发生了一个未知错误:" << e.what() << endl;
  }
  return 0;
}

这是一个简单的 C++ 异常处理示例,它演示了如何创建一个自定义异常类和如何使用 throw 关键字来抛出异常。在该示例中,如果我们将除数 b 的值设为 0,则会抛出一个 MyException 异常,这个异常会被 catch 块捕获并输出错误信息。如果程序中发生了其他异常,则会被 catch 块中的 exception 类捕获并输出错误信息。