2012-05-21 43 views
-4

我在释放配置使用VS2010和C++为什么程序在没有try/catch的情况下失败?

以下好吗执行:

int status; 
try 
{ 
    status = myfunction(arg1, arg2); 
} 
catch (int e) 
{ 
    cout << "An exception occurred. Exception Nr. " << e << endl; 
} 

但是,以下坠毁方案:

int status; 
status = myfunction(arg1, arg2); 

发生了什么?
我没有方法的来源,myfunction,它是第三方DLL的一部分。

+7

大概是因为myfunction引发异常。 – Fanael

+1

如果你声明一个名为'statis'的变量,并初始化一个名为'status'的变量,它甚至不会编译... –

+0

我的猜测是myfunction导致崩溃,也许是因为它不喜欢被传递两个相同的东西参数。如果我是对的,那么你欠我100万美元用于浪费我的ESP而不是JREF的挑战。 –

回答

5

通过删除try/catch块,您不会捕获调用该函数时引发的异常。这会导致未捕获的异常将堆栈一直关闭到main(),并且由于它仍然未处理,请退出程序

从oputput看来,抛出的整数是一个代码,用于确切发生什么错误。要查看是否可以调和,您需要查找错误代码。

相关问题