0
是否有可能在C++中有一个异常类中的多个元素,我可以将它与异常相关联,这样当我抛出它时,用户可以收集有关异常的更多信息而不仅仅是一条错误消息?我有以下类异常继承
#include <list>
using namespace std;
class myex : public out_of_range {
private:
list<int> *li;
const char* str = "";
public:
//myex(const char* err): out_of_range(err) {}
myex(li<int> *l,const char* s) : li(l),str(s) {}
const char* what(){
return str;
}
};
当我把使用
throw myexception<int>(0,cont,"Invalid dereferencing: The iterator index is out of range.");,
当我取消对注释行我得到一个错误
error: no matching function for call to ‘std::out_of_range::out_of_range()’.
Any help is appreciated.`.
一个MYEX,并删除其他的构造函数,然后它工作正常。
保存'const char *'在这里是非常危险的,因为用来构造异常的字符串很可能超出了抛出和异常捕获之间的范围。 –
感谢您的咨询! – rgamber