如何在ansi C90中捕获运行时错误
我正在使用库函数
ConnectToTCPServer.当主机无法访问时,此函数超时.在这种情况下,应用程序崩溃并出现以下错误:
“非致命的运行时错误:”MyClient.c“,第93行,第15行,线程号0x000017F0:库函数错误(返回值== -11 [0xfffffff5]).超时错误” Errorcode 11是一个超时错误,所以这可能在我的应用程序中经常发生 – 但应用程序崩溃 – 我想抓住这个错误,而不是让我的应用程序崩溃. 如何在Ansi C90中捕获此运行时错误? 编辑: ConnectToTCPServer(&srvHandle,srvPort,srvName,HPMClientCb,answer,timeout); 同 int HPMClientCb(UINT handle,int xType,int errCode,void *transData){ printf("This was never printedn"); return errCode; } 永远不会调用Callback函数.我的服务器未运行,因此ConnectToTCPServer将超时.我怀疑回调被调用 – 但它永远不会被调用. 编辑2:实际上没有调用回调函数,ConnectToTCPServer的返回值包含相同的错误信息.我认为这可能是ConnectToTCPServer抛出此错误的错误.我只需要抓住它并将它装在C90中.有任何想法吗? 编辑3:我测试了Callback函数,在我的服务器在线的罕见的occaision上实际调用了回调函数 – 这没有帮助,因为在发生错误时没有调用回调. 解决方法
查看NI文档,我看到:
“库错误断点 – 只要LabWindows / CVI库函数在运行时返回错误,您就可以设置一个选项来中断程序执行.” 我推测它们有一个调试选项,可以使程序停止运行时错误,您需要在配置,编译时或运行时禁用它. 我的第一个猜测是配置值或编译标志,但这是我找到的唯一选项,这是一个运行时选项: ????//如果启用了调试,则此函数不指示LabWindows / CVI 说它是否有帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |