std::
exception::what
公众成员函数 <exception>
C++98 |
virtual const char* what() const throw();
|
C++11 |
virtual const char* what() const noexcept;
|
获取字符串标识异常
返回一个以null结尾的字符序列,该序列可用于识别异常。
返回值所指向的特定表示是由实现定义的。
作为虚函数,派生类可以重新定义此函数,以便返回特定的值。
☲ 参数
-
none
☉ 返回值
指向与异常相关内容的c-string对象的指针。
这保证至少在销毁获取异常的异常对象或调用异常对象的非const成员函数之前是有效的。
☣ 示例
// exception::what
#include <iostream> // std::cout
#include <exception> // std::exception
struct ooops : std::exception {
const char* what() const noexcept {return "Ooops!\n";}
};
int main () {
try {
throw ooops();
} catch (std::exception& ex) {
std::cout << ex.what();
}
return 0;
}
|
输出:
Ooops!
☂ 异常安全性
无抛出保证:该成员函数从不抛出异常。
这也适用于c++标准库中的所有派生类。
🍄 另请参阅