SOAP开发,在网络连接不稳定的情况下,如何避免Connector->EndMessage()函数调用异常?

也可以清心 2008-09-18 03:56:31
GOOGLE和CSDN上找了好久,也问了一些有开发经验的朋友,一直没能找到答案:

开发环境:VC6.0, MFC, SOAP3.0
我写的一段调用第三方webservice代码在网络连接正常的时候应用完全没有问题。为了测试网络连接不稳定时,程序的表现,我拔掉网线再次执行该 webservice调用过程,结果在运行到Connector->EndMessage()的时候,报出 Microsoft C++ Exception,调用栈如下:
MSVCRTD! _CxxThrowException@8 + 57 bytes
_com_raise_error(long -2146822888, IErrorInfo * 0x003ed790) + 35 bytes
_com_issue_errorex(long -2146822888, IUnknown * 0x003e6260, const _GUID & {IID_ISoapConnector}) + 93 bytes
MSSOAPLib30::ISoapConnector::EndMessage() line 1741

调用代码是很常规的VC下的SOAP开发代码:
Serializer->EndElement();
Serializer->EndBody();
Serializer->EndEnvelope();

// Send the message to the XML Web service.
hr = Connector->EndMessage();
if (FAILED(hr))
{
delete pinfoQuery;
return 2;
}

问题是:Connector->EndMessage()调用在网络故障或者数据错误的时候,是不是一定会导致程序异常?是否有办法规避这一问题?
我的目的只是要在出现这种情况时,所在线程中止,并且不影响主线程就可以。

欢迎和感谢遇到过此类问题的朋友们帮忙!!
留下mail:layman_2539@sina.com.cn
再次感谢!
...全文
218 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhoujianhei 2008-09-18
  • 打赏
  • 举报
回复
try{
...
}
catch(...)
{
}

sygdp21 2008-09-18
  • 打赏
  • 举报
回复
我也有同样的问题,网络连接不上的话,整个程序就退出了,让我很是郁闷,期待高手指点?

18,355

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧