リストの最後にoノードを追加するc++コードを書いています。ノードがすでに存在する場合にエラーをスローしたいのですが、動作していますが、すでに存在するノードで呼び出すと、このエラーが発生します。誰もが理由とそれがどのように修正されるか知っていますか?
'
Error'Abortedのインスタンスをスローした後に呼び出された例外終了
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;
}
行の1つを消去するとx.addNode(p1);
、例外なく正常に機能します...