我在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或代码有问题吗?

最佳答案

我认为您的问题不在于您的代码。问题出在您的编译器工具链中。您可能正在使用Qt,并且工具链出现了问题。 Google在您的IDE崩溃时收到的消息。

这是一个简单的实验,可以证明我的意思:只需运行以下代码:

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


  cout << "End";

  return 0;
}

而且您的程序将崩溃,这意味着您不会对异常或代码中的任何其他内容有任何疑问,但是对于您的工具链而言。

关于c++ - 命令处理器已停止工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19101532/

10-13 03:22