📜  C ++中带有类的用户定义的自定义异常(1)

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

C++中带有类的用户定义的自定义异常

在C++中,异常是一种在程序运行时发生的错误。C++提供了一些内置的异常类型,但在许多情况下,我们需要自定义异常类型以适应特定的需求。在这里,我们将了解如何创建带有类的用户自定义异常。

创建自定义异常类

要创建自定义异常类,请定义一个类并从标准异常类继承它。标准异常类定义在' <stdexcept> 头文件中。

下面的代码演示如何创建一个名为 MyException 的自定义异常类:

#include <stdexcept>

class MyException : public std::exception {
public:
    MyException(const char* msg) : message(msg) {}
    const char* what() const noexcept override {
        return message;
    }
private:
    const char* message;
};

在这里,我们从 std::exception 类继承自定义异常类,并使用 const char* 类型的数据成员存储异常消息。我们还重写了 what() 函数以返回异常消息。

抛出异常

要抛出自定义异常,可以在代码中使用 throw 语句并传递异常对象,如下所示:

throw MyException("Custom exception message");
捕获异常

要捕获自定义异常,可以在代码中使用 catch 语句并指定要捕获的异常类型,如下所示:

try {
    // some code that might throw exception
}
catch(MyException& e) {
    std::cout << "Caught exception: " << e.what() << std::endl;
}

在这里,我们在 try 块中编写可能引发异常的代码。在 catch 块中,我们指定要捕获的异常类型为 MyException,并使用 e.what() 函数打印异常消息。

总结

在C++中,我们可以创建带有类的自定义异常来适应特定情况下的需求。这种自定义异常能够提供更多有关错误信息的详细信息,从而帮助我们更好地调试和定位问题。