我已经创建了自己的异常类,它派生自runtime_error
c'tor 并在 c'tor 中得到一个 int。
我想为这个异常创建一个基类,以便使用多态性,所以我只能捕获基类,基本上我会捕获派生类。
所以,这是基类:(在另一个 cpp 文件中,我得到了 baseException::~baseException(){})
class baseException
{
virtual ~baseException()=0 {}
};
这是派生类:
class myException: public runtime_error, public baseException
{
public:
myException(int): runtime_error("Error occured") {}
};
请注意,我在基类中没有任何实际错误,它的唯一作用是使我能够在我将制作的未来自定义异常类上实现多态性。这就是为什么它只有一个纯粹的虚拟 d'tor。我不需要此类的任何“实际”对象BaseException
。
但是,当我尝试在 main 中捕获 baseException 并调用 what() 时,我做不到。我如何使它工作?