2013-12-18 82 views
0

在我的應用程序中,我收到了一條異常消息。這發生在if()條件失敗時拋出false的情況。該錯誤消息我是如下在vC++中沒有發現異常

Unhandled exception at 0x74fe812f in MyApp.exe: Microsoft C++ exception: bool at memory location 0x0015c87b.. 

我的代碼生成該錯誤

if((dwStatus!= 302) && (dwStatus< 200 || dwStatus> 299)) 
    throw false; 

這裏dwStatus是DWORDpHttpFile->QueryInfoStatusCode(dwStatus)得到其中pHttpFileCHttpFile

一個對象引用代碼位於try塊中,並且適當的catch塊也在那裏。

如何發生此錯誤。

編輯

這就是catch塊

catch(CException* pErr) 
{ 
    TCHAR szErr[1024]; 
    pErr->GetErrorMessage(szErr,1024); 
    pErr->Delete(); 
    bRet = FALSE; 
} 
+2

可以顯示catch塊? – Mgetz

+0

你的'catch'塊捕獲'CException *'類型的對象。你扔了一個「布爾」。你爲什麼期望這個catch塊來處理這個異常? –

回答

2

您的catch塊正在捕獲CException*類型的異常,但是您拋出的異常類型爲bool。如果你想捕獲了異常,你需要一個catch塊捕獲bool類型的異常:

catch(bool exception) 
{ 
    //report the exception, or recover, or whatever 
} 
0

異常被你扔的造成的。這是投擲應該做的。如果你的問題是關於爲什麼沒有發現異常,那麼請編輯你的問題併發布你的catch代碼。

+0

感謝您的回覆。問題被更新並且catch塊被添加。 –