c++ c++-faq copy-constructor assignment-operator rule-of-three
在库中,我有一个函数,它在数据库中搜索一个键并返回一个对象的非const引用.我想处理找不到密钥的情况,这通常是由调用函数时的错误引起的.这种情况非常糟糕,程序无法继续,所以我打印一条消息,以帮助发现错误和调用exit(1).问题在于return语句在这种情况下永远不会执行,但无论如何都必须在那里.如果它是一个指针,我可以只return nullptr;用一个参考?我应该做这样的伪代码吗?
Type & get(const Key & k) {
if (my_db.key_exists(k)) {
return my_db.at(k);
}
std::cerr << k << " not found\n";
exit(1);
return *(new Type(some_dummy_parameters));
}
Run Code Online (Sandbox Code Playgroud)
它看起来很糟糕!也许我应该避免这样的功能.拜托,让我知道你的意见!