控制台应用程序中的C ++异常?

时间:2016-10-11 15:04:28

标签: c++ exception console

可能是一个愚蠢的问题,但我想在控制台应用程序中使用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应用程序中是否例外允许? 我错过了一些包含文件吗?
我做过或不做过的其他(愚蠢)事情?

1 个答案:

答案 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 );
    }
}