std::exception自定义异常捕获类

std::exception 是 C++ 标准库中用于处理异常的基类。它定义了一些通用的异常行为和方法,我们可以通过继承 std::exception 来创建自定义的异常类。

以下是一个关于继承 std::exception 的异常检查的例子:


#include 
#include 

class MyException : public std::exception {
public:
    const char* what() const noexcept override {
        return "My custom exception occurred!";
    }
};

void foo() {
    throw MyException();
}

int main() {
    try {
        foo();
    } catch (const std::exception& e) {
        std::cout << "Exception caught: " << e.what() << std::endl;
    }

    return 0;
}

在这个例子中,我们定义了一个自定义的异常类 `MyException`,它继承自 `std::exception`。我们重写了 `what()` 方法,以提供自定义的异常消息。在 `foo()` 函数中,我们抛出了这个自定义异常。在 `main()` 函数中,我们通过捕获 `std::exception` 引用来捕获任何继承自 `std::exception` 的异常,并打印出异常消息。

教程步骤如下:

1. 包含头文件 `` 和 ``,因为我们将使用 `std::exception` 和标准输入输出流。
2. 创建自定义异常类 `MyException`,并继承自 `std::exception`。
3. 在 `MyException` 类中重写 `what()` 方法,提供自定义的异常消息。这个方法应该返回一个指向异常消息的 C 风格字符串。
4. 在需要抛出异常的地方,使用 `throw` 关键字抛出自定义异常类的对象。
5. 在 `main()` 函数中使用 `try-catch` 块来捕获异常。捕获的类型为 `const std::exception&`,以便可以捕获任何继承自 `std::exception` 的异常。
6. 在 `catch` 块中,通过调用 `what()` 方法获取异常消息,并进行适当的处理。

这个例子可以帮助你理解如何使用继承 `std::exception` 来创建自定义异常类,并在程序中捕获和处理这些异常。你可以根据自己的需求扩展这个例子,并为自定义异常类添加更多的功能和成员变量。

你可能感兴趣的:(c++,c++,开发语言)