什么是R6010错误?

Cla*_*ton 3 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;
}
Run Code Online (Sandbox Code Playgroud)

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

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

maj*_*aja 5

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

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

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

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

如果删除或捕获异常,该错误将不再显示。