std::exception 怎么printf出来
时间: 2024-09-27 11:12:14 浏览: 28
`std::exception`是C++中的标准异常类,它是所有特定异常类的基础。当你遇到运行时错误或异常情况时,可能会抛出一个`std::exception`类型的对象。如果你想打印出这个异常的信息以便调试,通常你会获取它的`what()`成员函数返回的描述信息。
以下是如何使用`std::cout`或`printf`输出`std::exception`的示例:
```cpp
try {
// 这里假设有一段可能抛出异常的代码
throw std::runtime_error("This is an error message");
} catch (const std::exception& e) {
// 获取异常的详细描述
std::string errorMsg = e.what();
// 使用cout输出
std::cout << "An exception occurred: " << errorMsg << std::endl;
// 或者使用printf输出(注意在Windows上,需用wstring_convert和wprintf)
// Windows下:
#if defined(_MSC_VER)
std::wstring_convert<std::codecvt_utf8<wchar_t>> conv;
wprintf(L"An exception occurred: %ls\n", conv.from_bytes(errorMsg));
#else
printf("An exception occurred: %s\n", errorMsg.c_str());
#endif
}
```
在这个片段中,`e.what()`返回的是一个包含异常详细信息的字符串,然后可以用来打印到控制台或格式化输出到其他地方。
阅读全文