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

该文展示了如何在C++中通过继承std::exception来创建自定义异常类。示例包括定义MyException类,重写what()方法以提供定制的错误消息,以及在try-catch块中捕获和处理这些异常。这有助于理解C++中的异常处理机制。
摘要由CSDN通过智能技术生成

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

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


#include <iostream>
#include <exception>

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. 包含头文件 `<iostream>` 和 `<exception>`,因为我们将使用 `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` 来创建自定义异常类,并在程序中捕获和处理这些异常。你可以根据自己的需求扩展这个例子,并为自定义异常类添加更多的功能和成员变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

磊磊cpp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值