我正在编写一个 c++ 代码,将 o 节点添加到列表末尾我想在节点已经存在时抛出错误,它正在工作,但是每当我用已经退出的节点调用它时,我都会收到此错误。有人知道原因以及如何解决吗?
抛出“错误”实例后调用异常
终止
List& List::addnode(node p){
node *Current=NULL;
p.nextNode = NULL;
p.previousNode = NULL;
if (!firstNode) firstNode = &p;
else Current = firstNode;
while (Current){
if ((*Current) == p){
throw NodeExist;
return *this;
}
if (!(Current->nextNode)){
Current->nextNode = &p;
p.previousNode = Current;
return *this;
}
Current = Current->nextNode;
}
}
编辑:我这样称呼它
try{
x.addNode(p);
x.addNode(p1);
x.addNode(p2);
x.addNode(p1);
x.addNode(p4);
}
catch(int i){
cout<<i<<endl;
}
如果我删除其中一条x.addNode(p1);
线,它会正常工作,无一例外......