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