我正在编写一个通用链表类,并且在我的反向迭代器类中重载了 * 运算符。这是我所拥有的:
try
{
return this->item->data;
}
catch (...)
{
cout << "OUT OF RANGEEEEE" << endl;
}
item
,这是我的链表类的节点,可能是 nullptr 因为我的指针指向 rend() 位置。在那种情况下,我该如何处理该异常以使我的程序仍然运行?我尝试使用此代码运行,但我的程序崩溃了。
另外,只做这样的事情可以吗?
if (item == nullptr)
{
throw std::out_of_range("Error message here!");
}
else
{
return this->item->data;
}
编辑:所以我认为我的第二个实现更好?但是,当我使用第二个实现运行我的程序时,我无法继续我的程序。我怎样才能让它更安全,这样我的程序才能继续运行?