这可能是个愚蠢的问题,但我想在控制台应用程序(使用新的 Win32 控制台应用程序项目向导创建)中使用 C++ 异常。我尝试了下面显示的主题的许多变体,但并不高兴:
try {
// do something that may throw an exception
}
catch( exception e ) {
printf( "Exception: %s\n", e.what );
}
编译器提示找不到标识符“exception”。
我尝试了各种方法来代替“异常”(例如,“IOException”、“bad_alloc”),但没有成功。
我在项目配置中尝试了不同的异常相关选项,同样没有成功。
我是能够使用
catch(...) {
但这没有给我任何关于异常的信息。
问题:
在非 .NET 应用程序中是否甚至允许异常?
我是否缺少一些包含文件?
我做过或没做过的其他(愚蠢的)事情?
最佳答案
Are exceptions even allowed in non-.NET apps?
是的,他们是。
Am I missing some include file?
看起来您缺少必要的 #include <exception>
和/或带有 std::
的命名空间范围.
Some other (dumb) thing I did or didn't do?
捕获异常的更好方法是通过常量引用顺便说一句:
#include <exception>
int main() {
try {
// do something that may throw an exception
}
catch(const std::exception& e ) {
printf( "Exception: %s\n", e.what );
}
}
关于控制台应用程序中的 C++ 异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39980440/