关于异常处理的困惑,详情请进。

yndfcd 2003-04-16 09:01:00
CList::CList()
{
m_nCount = 0;
m_pHeader = (CShape**)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(CShape*)*5);
}

CList::~CList()
{
HeapFree(GetProcessHeap(), 0, m_pHeader);
}

void CList::AddTail(CShape *pItem)
{
__try
{
m_pHeader[m_nCount] = pItem;
//m_nCount > 5,此句仍能执行成功。
}
__except(EXCEPTION_CONTINUE_EXECUTION)
{//此块的内容从来不被执行
m_pHeader = (CShape**)HeapReAlloc(GetProcessHeap(),
HEAP_ZERO_MEMORY,m_pHeader,sizeof(CShape*)*5);
}
m_nCount++;
}

CShape* CList::GetItem(int i)
{
if( i > m_nCount) return NULL;
return m_pHeader[i];
}

为什么不会产生异常,是不是HeapAlloc的问题?
...全文
21 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yndfcd 2003-04-16
  • 打赏
  • 举报
回复
这个问题我己经搞定了,只要在release模式下编译,就不会有任何问题,感谢两位的参与。
yndfcd 2003-04-16
  • 打赏
  • 举报
回复
难道数组下标越界时,写入也不会发生异常吗?
xiaodongliu 2003-04-16
  • 打赏
  • 举报
回复
CCBeyond 2003-04-16
  • 打赏
  • 举报
回复
你并没抛出异常啊,怎么会产生异常呢?

15,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧