什么是R6010错误?

时间:2015-01-29 08:38:21

标签: c++ windows exception visual-c++

我遇到了一个问题,我的可执行文件可能会收到中止/重试/忽略对话框,例如:

调试错误! 程序:... whatever.exe

R6010 - abort()被称为

我相信这是因为我有一个未处理的异常,我可以用这个简单的程序复制问题:

int _tmain(int argc, _TCHAR* argv[])
{
    try
    {
        throw std::exception();
    }
    catch (std::logic_error& e)
    {

    }

    std::cout << "Hello World!";
    return 0;
}

我的假设是否正确(它是由未处理的异常引起的)?我在网上找到了很多关于错误的例子,但实际上并没有定义错误代码的含义。

此错误仅发生在我的调试版本中。我的发布版本将在崩溃之前挂起(这是我对未处理的异常的期望)。

1 个答案:

答案 0 :(得分:5)

如果存在断言,则会发生这种情况:assert( condition );

仅在调试版本中检查/编译断言。

未处理的异常在内部进行断言,以便允许开发人员中断和调试程序并查找错误。

在发布版本中,应用程序立即崩溃。

如果删除或捕获异常,则不再出现错误。