gpt4 book ai didi

c++ - 在预期返回 Template 值的函数的错误情况下,我应该返回什么?

转载 作者:行者123 更新时间:2023-11-30 01:46:19 24 4
gpt4 key购买 nike

我在 OOP 方面还很菜鸟,这是我第一次处理异常和模板,可能是我以错误的方式计划了这个功能......但是我想知道在这种情况下如果执行出错并抛出异常我应该返回什么......返回模板的函数返回什么样的数据错误?对不起,如果我不够清楚,英语不是我的母语......

template<typename T>
const T& List<T>::Next()
{
try
{
if (_actual->getNext() == NULL)
throw out_of_range("No next elements, list out of bounds");
else
{
_actual = _actual->getNext();
_Position++;
return _actual->getData();
}
}
catch (out_of_range &e)
{
cerr << "Error, " << e.what() << endl << "Position: " << _Position << " Elements: " << _Elements << endl;
}
// <--- what should I return here?? return NULL;? return 0;? return <T> thrash;??
}

最佳答案

如果没有什么可返回的,那么就没有什么可返回的。

让异常传播,要么不在这里捕获它,要么在你的 cerr 语句之后用 throw 语句重新抛出它:

catch (out_of_range &e)
{
cerr << "Error, " << e.what() << endl
<< "Position: " << _Position
<< " Elements: " << _Elements << endl;
throw;
}

您的下一个问题是如何处理调用范围内的异常。 :)
但至少您不必再担心返回值。

关于c++ - 在预期返回 Template<T> 值的函数的错误情况下,我应该返回什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33413497/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com