加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何在ansi C90中捕获运行时错误

发布时间:2020-12-16 09:31:51 所属栏目:百科 来源:网络整理
导读:我正在使用库函数 ConnectToTCPServer.当主机无法访问时,此函数超时.在这种情况下,应用程序崩溃并出现以下错误: “非致命的运行时错误:”MyClient.c“,第93行,第15行,线程号0x000017F0:库函数错误(返回值== -11 [0xfffffff5]).超时错误” Errorcode 11是
我正在使用库函数 ConnectToTCPServer.当主机无法访问时,此函数超时.在这种情况下,应用程序崩溃并出现以下错误:
“非致命的运行时错误:”MyClient.c“,第93行,第15行,线程号0x000017F0:库函数错误(返回值== -11 [0xfffffff5]).超时错误”

Errorcode 11是一个超时错误,所以这可能在我的应用程序中经常发生 – 但应用程序崩溃 – 我想抓住这个错误,而不是让我的应用程序崩溃.

如何在Ansi C90中捕获此运行时错误?

编辑:
这是当前使用的Codesnippet:

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
????//在National Instruments中显示运行时错误对话框
????//库函数报告错误.
????DisableBreakOnLibraryErrors();

说它是否有帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读