2017-06-11 45 views
-1

我不知道为什么它的行为如此,但是当发生异常时,调试器启动并且应用程序中断。 为什么它不会继续执行?C++ clr异常处理正在停止执行

try 
{ 
    response = httpClient->PostAsync(gcnew Uri(url), content)->Result; 
} 
catch (const std::exception& ex) 
{ 

} 

enter image description here

+0

SocketException是否在std :: exception之后继承? – ArturFH

+1

当您的应用程序抛出一个无法捕获的异常时,调试器总是进入。不,捕捉std :: exception永远不会捕获System :: Exception,这将是严重的。考虑捕获SocketException,这是实际抛出的,你可以从调试器中得知。 –

回答

0

看来,我是在一个错误的方式这样做。 我应该使用适当的Exception Class。

try 
{ 
    response = httpClient->PostAsync(gcnew Uri(url), content)->Result; 
} 
catch (System::Exception^ e) 
{ 

} 
+0

是的,因为异常的hander明显在托管类中(通过使用“gcnew”关键字),所以您必须按照.NET规则进行操作并捕获“托管异常”。 – SBS