我需要继承runtime_class
的异常类来接受wstring&
。这是MyExceptions.h
:
using namespace std;
class myExceptions : public runtime_error
{
public:
myExceptions(const string &msg ) : runtime_error(msg){};
~myExceptions() throw(){};
};
我希望myExceptions
像这样接受wstring&
:myExceptions(const **wstring** &msg )
。但是当我运行它时,我收到了这个错误:
C2664: 'std::runtime_error(const std__string &): cannot convert parameter 1 from 'const std::wstring' to 'const std::string &'
我了解runtime_error
接受string&
而非wstring&
定义如下C++ Reference - runtime_error:
> explicit runtime_error (const string& what_arg);
如何在wstring&
中使用runtime_error
?
答案 0 :(得分:3)
最简单的方法是传递runtime_error
传统消息并直接在myExceptions
类中处理你的wstring消息:
class myExceptions : public runtime_error {
public:
myExceptions(const wstring &msg ) : runtime_error("Error!"), message(msg) {};
~myExceptions() throw(){};
wstring get_message() { return message; }
private:
wstring message;
};
否则,您可以编写一个私有静态成员函数,该函数从wstring转换为string,并使用它将转换后的字符串传递给runtime_error
的构造函数。但是,正如您在this answer中看到的那样,这不是一件非常简单的事情,对于异常构造函数来说可能有点太多了。