我正在使用函數庫函數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