可能是一个愚蠢的问题,但我想在控制台应用程序中使用C ++异常(使用新的Win32控制台应用程序项目向导创建)。我尝试了下面显示的主题的许多变化,没有任何乐趣:
try {
// do something that may throw an exception
}
catch( exception e ) {
printf( "Exception: %s\n", e.what );
}
编译器抱怨找不到标识符“exception” 我尝试了各种代替'exception'的东西(例如,'IOException','bad_alloc')但没有运气。
我在项目配置中尝试了不同的与异常相关的选项,也没有运气 我 能够使用
进行编译catch(...) {
但这没有给我任何关于异常的信息。
问题:
在非.NET应用程序中是否例外允许?
我错过了一些包含文件吗?
我做过或不做过的其他(愚蠢)事情?
答案 0 :(得分:2)
非.NET应用程序中是否允许例外?
是的,他们是。
我错过了一些包含文件吗?
您似乎错过了#include <exception>
所需的std::
和/或命名空间范围。
我做过或不做过的其他(愚蠢)事情?
捕获异常的更好方法是通过const引用BTW:
#include <exception>
int main() {
try {
// do something that may throw an exception
}
catch(const std::exception& e ) {
printf( "Exception: %s\n", e.what );
}
}