在我的应用程序中,我收到了一条异常消息。当if()条件失败时,我抛出false时会发生这种情况。我得到的错误信息如下
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是DWORD
,来自pHttpFile->QueryInfoStatusCode(dwStatus)
,其中pHttpFile
是CHttpFile
的对象引用
代码位于try
块中,并且还有相应的catch
块。
如何发生此错误。
修改
这是catch块
catch(CException* pErr)
{
TCHAR szErr[1024];
pErr->GetErrorMessage(szErr,1024);
pErr->Delete();
bRet = FALSE;
}
答案 0 :(得分:2)
您的catch块正在捕获CException*
类型的异常,但您正在抛出bool
类型的异常。如果要捕获该异常,则需要一个捕获块来捕获bool
类型的异常:
catch(bool exception)
{
//report the exception, or recover, or whatever
}
答案 1 :(得分:0)
异常是由你的投掷引起的。这就是应该做的事情。如果您的问题是关于未捕获异常的原因,请编辑您的问题并发布您的捕获代码。