首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在应该返回引用的函数中进行exit()调用

在应该返回引用的函数中进行exit()调用
EN

Stack Overflow用户
提问于 2014-04-03 16:09:19
回答 4查看 675关注 0票数 3

在库中,我有一个函数,它搜索数据库中的键并返回对象的非const引用。我想要处理找不到键的情况,这通常是由于调用函数时出错造成的。这种情况非常糟糕,以致程序无法继续运行,所以我打印了一条消息来帮助发现错误并调用exit(1)。问题在于返回语句在这种情况下永远不会执行,但无论如何都必须在那里执行。如果它是一个指针,我可以只使用return nullptr;,但是有一个引用?我应该做一些类似伪代码的事情吗?

代码语言:javascript
复制
 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));
 }

看起来糟透了!也许我应该避免这样的功能。请告诉我你的意见!

EN

Stack Overflow用户

发布于 2014-04-03 16:14:22

库不应退出最主机的应用程序。

使用“返回空”,进入“不一致状态”,在每次调用中都返回空。

库用户将不得不处理它。

或者例外..。

票数 1
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22843189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档