我正在使用函数库函数ConnectToTCPServer。当主机不可访问时,此功能超时。在这种情况下,应用程序崩溃并出现以下错误: “非致命的运行时错误:”MyClient.c“,第93行,第15行,线程ID 0x000017F0:库函数错误(返回值== -11 [0xfffffff5] )。超时错误“我如何在ansi C90中捕获运行时错误
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 printed\n");
return errCode;
}
的callbackFunction参数永远不会被调用。我的服务器没有运行,所以ConnectToTCPServer会超时。我会怀疑这个回调是被调用的 - 但它永远不会被调用。
编辑2:实际上不调用回调函数,ConnectToTCPServer的Returnvalue包含相同的错误信息。我认为这可能是一个错误ConnectToTCPServer引发此错误。我只需要抓住它并将其存入C90。有任何想法吗?
编辑3:我测试了回调函数,在我的服务器在线的罕见occaision实际上调用回调函数 - 这并没有帮助,因为当发生错误时不会调用回调函数。
我提供了一个简约的例子 - 我相信这个错误在图书馆里被抓住,然后扔进我的应用程序,我不知道如何处理它。 – Johannes 2011-01-21 12:31:42