有很多方法可以创建从其他异常派生的新异常。一种方法是使用这样的东西
struct MyException : public exception
{
const char * what () const throw ()
{
return "C++ Exception";
}
};
另一种方法是调用基类的构造函数。
class My:public runtime_error
{
public:
My(string s):runtime_error(s){}
};
第二种方法显然给了我插入(在创建时)what() 方法输出的字符串的优势。我的问题是我应该更喜欢哪种方法以及是否需要使用第一种方法。