2

我正在为 Visual C++ 2010 上的异常处理编写代码。这是代码

#include <iostream>
using namespace std;

// Localize a try/catch to a function.
void Xhandler(int test)
{
  try{
    if(test) throw test;
  }
  catch(int i) {
    cout << "Caught Exception #: " << i << '\n';
  }
}

int main()
{
  cout << "Start\n";

  Xhandler(1);
  Xhandler(2);
  Xhandler(0);
  Xhandler(3);

  cout << "End";

  return 0;
}

程序正确执行,输出与预期一致。但是当我按下关闭按钮以关闭控制台时,出现了一个错误cmd has stopped working 这是图像

。然后我运行了我以前正确执行的代码,他们也给出了同样的错误。谁能告诉它为什么会发生?是 Visual c++ 2010 还是代码的问题

4

1 回答 1

3

我认为您的问题不在于您的代码。问题出在您的编译器工具链中。您可能正在使用 Qt,并且工具链存在导致此问题的问题。谷歌你在你的 IDE 崩溃时收到的消息。

这是一个简单的实验来证明我在说什么:只需运行以下代码:

int main()
{
  cout << "Start\n";


  cout << "End";

  return 0;
}

你的程序会崩溃,这意味着你的代码中没有异常或其他任何问题,但你的工具链有问题。

于 2013-09-30T19:03:49.303 回答