问题 替代std :: exception(const char *)非标准构造函数


我的Visual C ++代码使用接受字符串的std :: exception构造函数,我正在尝试将代码移植到Linux / G ++。我应该使用什么异常类?


8846
2017-07-30 22:07


起源

可能重复 MSVC std :: exception不符合标准? - paulsm4
是的,是的:-)我的问答形式更简洁。链接副本中的问题提供了大量代码,使他的问题看起来“具体”。 - Ilya


答案:


Microsoft Visual C ++的 std::exception(const char*) 构造函数是非标准的。在C ++标准库中,std :: exception有一个 const char* what() const 方法,除了覆盖之外,它没有提供指定字符串的方法。

您应该重写要使用的代码 std::runtime_error 或其中一个类 <stdexcept> 作为备选。当然,由于std :: runtime_error是从它派生的,因此不需要更改捕获std :: exception的现有代码。


14
2017-07-30 22:10