📅  最后修改于: 2023-12-03 15:29:42.877000             🧑  作者: Mango
在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++中,我们可以创建带有类的自定义异常来适应特定情况下的需求。这种自定义异常能够提供更多有关错误信息的详细信息,从而帮助我们更好地调试和定位问题。