目前,我正在学习C ++,现在正在实现一个示例程序以进行异常处理。主程序实现具有任意基数的数字系统。我用函数nums_exception : public std::exception
]创建了一个类virtual const char *what();
nsys_exception::nums_exception(Nums *obj, std::string errortext) : errortext(errortext) , obj(obj) { }
现在我派生了
nums_bad_digit
,它应该像这样(伪代码):
。nums_bad_digit::nums(Nums *obj, uint base, char digit) : nsys_exception(obj, "'digit' not in alphabet for base 'obj->getBase()'") , base(base) { }
所以,我想构造一个现成的错误消息,它说明为什么我确切地抛出了此异常,然后将其传递给
nums_exception
构造函数。例如,nums_bad_digit :: what()应该输出'Q'而不是以16为底的字母
我已经尝试过类似的静态方法
inline static std::string ERRORTEXT(Nsys *obj, char digit) { return std::string(std::to_string(digit) + " not in alphabet for base " + std::to_string(obj->getBase()) + '.'); }
我还尝试了一个编译器宏...但是,无论我如何尝试-将其编写为普通代码都可以。但是,当我要将字符串传递给
ǹums_exception
构造函数时,它将始终得到一个空字符串。
目前,我正在学习C ++,现在正在实现一个示例程序以进行异常处理。主程序实现具有任意基数的数字系统。我做了一个nums_exception类:...
您需要将errortext
传递给std :: exception构造函数: