簡體   English   中英

為錯誤 12029 拋出 CInternetException

[英]Throwing CInternetException for error 12029

這有點鏈接到我之前的問題。 此處的背景詳細信息: 使用 C++ 的簡單 HTTP 請求

基本上,我使用 C++ 通過 URL 將數據發送到服務器。 我現在在 CInternetSession 類中使用 openURL() 函數來做到這一點。 如果 openURL 成功連接到服務器,則不會拋出任何錯誤或異常。 但是,有時,在 Visual C++ 2006 的調試器中,我會看到這個彈出窗口

First-chance exception in myProg.exe (KERNELBASE.DLL): 
0xE06D7363: Microsoft C++ Exception.

我已將調試異常設置為“始終停止”,並在調試窗口中顯示

Warning: throwing CInternetException for error 12029

此外,當我自己運行程序時(沒有調試器和其他東西),我會彈出一個說調試錯誤的彈出窗口。

我知道這是因為 openURL() 無法連接到指定的 URL。 但是,我現在的問題是我不希望彈出窗口通知我這一點。 我在我的代碼周圍放置了一個 try catch 塊,但它仍然沒有處理異常。 這是代碼

    try {
        // Open HTTP file
        pHttpFile =(CHttpFile *) mySession.OpenURL(test1.c_str());
    }
    catch (CInternetException) {
        printf("Received Exception from OpenURL()");
        // Handle exception
    }

我在這里錯過了什么!?

嘗試使用“connect”手動使用另一種方法連接到該 IP 地址。 如果您可以連接到它,那么 openURL 不會拋出異常,因為您已經測試過可以使用我剛剛提到的其他功能連接到它。

您是否還可以考慮查看您的代碼以確保不會在其他地方拋出異常?

我認為您應該改為捕獲 CInternetException*。 對於所有 MFC 異常都作為指針拋出。

附注。 如果您不需要再次拋出它,您還應該在 catch 塊中使用 CException::Delete() 來刪除剛剛捕獲的異常對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM