读书人

为什么这样错误还是捕获了

发布时间: 2012-09-06 10:37:01 作者: rapoo

为什么这样异常还是捕获了?
void CSLList::InsertElement(int Ele, int pos) throw()
{
ListNode* pPosPreNode, *pPosNextNode;
if ( this->Length() < pos )
{
throw exception("wj");
}
pPosPreNode = GetNode(pos);
pPosNextNode = pPosPreNode->m_pNext;
ListNode* pPosCurNode = new ListNode(Ele,pPosNextNode);
pPosPreNode->m_pNext = pPosCurNode;

}

不是说函数后面 加上 throw()可以阻止异常抛出吗?为什么我try……catch……后,这个异常还是可以被捕获,我是在VS2008下

[解决办法]
因为编译器可以不按C++标准,自行处理的。
所以,请忘掉函数尾巴上的throw声明。
[解决办法]
在现实中,函数屁股上的throw貌似没有任何用处。

读书人网 >C++

热点推荐