exit() 在应该返回引用的函数内调用

2023-12-09

在库中,我有一个函数可以在数据库中搜索键并返回对对象的非常量引用。我想处理找不到密钥的情况,这通常是由调用函数时的错误引起的。这种情况太糟糕了,程序无法继续,所以我打印一条消息来帮助发现错误并调用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));
 }

看起来太可怕了!也许我应该避免这样的功能。请告诉我您的意见!


这种情况非常糟糕,程序无法继续,因此我打印一条消息来帮助发现错误并调用 exit(1)

不可以。如果此代码是库的一部分,则该库不应决定应用程序是否应退出。

如果文件已打开并且需要关闭,或者需要清理其他一些资源,或者数据库类的用户想要记录错误并继续执行其他操作,该怎么办?

答案是任何东西but你现在在做什么。抛出异常、返回错误码等但是don't在库或类代码中关闭应用程序。

不管你相信与否,有一个商业数据库库完全可以完成你正在做的事情(关闭应用程序)。他们收到了图书馆用户的很多愤怒的回应,询问他们为什么要意外关闭该应用程序。你知道吗 - 给客户的答案是“我们认为错误严重到足以停止应用程序,因为our图书馆无法继续正常工作”。这不仅是错误的推理,而且近乎傲慢,客户让他们知道这一点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

exit() 在应该返回引用的函数内调用 的相关文章

  • 数据模板绑定垃圾邮件输出窗口出现错误:找不到管理 FrameworkElemen

    我有问题 System Windows Data 错误 2 找不到目标元素的管理 FrameworkElement 或 FrameworkContentElement BindingExpression 无路径 数据项 空 目标元素是 So
  • 尚未注册类型“IServiceProviderFactory[Autofac.ContainerBuilder]”的服务

    当运行以下命令添加数据库迁移脚本时 出现以下错误 dotnet ef migrations add InitialCreate v o Migrations context MyContext 访问 Microsoft Extensions
  • QCombobox 向下箭头图像

    如何更改Qcombobox向下箭头图像 现在我正在使用这个 QSS 代码 但这不起作用 我无法删除向下箭头边框 QComboBox border 0px QComboBox down arrow border 0px background
  • 在 C# 中按元素相乘数组具有意想不到的性能

    我想找到按元素相乘两个数组的最佳方法 这是更广泛项目的一部分 其中性能而不是唯一的考虑因素 我今天开始用 C Linqpad 编写一些函数 因此它还没有以任何方式进行优化 下面代码的输出如下 Environment ProcessorCou
  • 为什么在创建矩阵类时使用向量不好?

    对于我的矩阵类 我做了 template
  • 读取 C# 中的默认应用程序设置

    我的自定义网格控件有许多应用程序设置 在用户范围内 其中大部分是颜色设置 我有一个表单 用户可以在其中自定义这些颜色 并且我想添加一个用于恢复默认颜色设置的按钮 如何读取默认设置 例如 我有一个名为的用户设置CellBackgroundCo
  • 防止 boost::asio::io_context 在空轮询调用时停止

    此代码调用发布的句柄 boost asio io context ioc boost asio post ioc std cout lt lt lol lt lt std endl ioc poll 而这并没有 boost asio io
  • 信号处理程序有单独的堆栈吗?

    信号处理程序是否有单独的堆栈 就像每个线程都有单独的堆栈一样 这是在 Linux C 环境中 来自 Linux 手册页signal 7 http kernel org doc man pages online pages man7 sign
  • 与 Qt 项目的静态链接

    我有一个在 Visual Studio 2010 Professional 中构建的 Qt 项目 但是 当我运行它 在调试或发布模式下 时 它会要求一些 Qt dll 如果我提供 dll 并将它们放入 System32 中 它就可以工作 但
  • 在 JSQMessagesViewController 中显示 LocationMediaItem

    我刚刚尝试实施LocationMediaItem in my Xamarin iOS应用程序使用JSQMessagesViewController 一切都很顺利 唯一的问题是UICollectionView应该显示位置的单元格永远停留在加载
  • 如何在服务器端按钮点击时关闭当前标签页?

    我尝试在确认后关闭当前选项卡 因此我将以下代码放在确认按钮的末尾 但选项卡没有关闭 string jScript ClientScript RegisterClientScriptBlock this GetType keyClientBl
  • 退出 Qt 程序的正确方法?

    我应该如何退出 Qt 程序 例如在加载数据文件时 发现文件损坏 并且用户需要退出该应用程序或重新启动数据文件 我是不是该 call exit EXIT FAILURE call QApplication quit call QCoreApp
  • 每个租户的唯一用户名和电子邮件

    我正在使用以下代码编写多租户应用程序ASP NET Core 2 1 我想覆盖默认的与用户创建相关的验证机制 目前我无法创建多个具有相同的用户UserName My ApplicationUser模型有一个名为TenantID 我想要实现的
  • 了解使用 Windows 本机 WPF 客户端进行 ADFS 登录

    我已经阅读了大量有关 ADFS 与 NodeJS Angular 或其他前端 Web 框架集成以及一般流程如何工作的文献 并通过 Auth0 Angular 起始代码构建了概念证明 但我不明白如何这可以与本机 WPF Windows 应用程
  • C++ Streambuf 方法可以抛出异常吗?

    我正在尝试找到一种方法来获取读取或写入流的字符数 即使存在错误并且读 写结束时间较短 该方法也是可靠的 我正在做这样的事情 return stream rdbuf gt sputn buffer buffer size 但如果streamb
  • 矩阵到数组 C#

    这将是转换方阵的最有效方法 例如 1 2 3 4 5 6 7 8 9 into 1 2 3 4 5 6 7 8 9 in c 我在做 int array2D new int 1 2 3 4 5 6 7 8 9 int array1D new
  • C++0x中disable_if在哪里?

    Boost 两者都有enable if and disable if 但 C 0x 似乎缺少后者 为什么它被排除在外 C 0x 中是否有元编程工具允许我构建disable if按照enable if 哦 我刚刚注意到std enable i
  • 使我的 COM 程序集调用异步

    我刚刚 赢得 了在当前工作中维护用 C 编码的遗留库的特权 这个dll 公开使用 Uniface 构建的大型遗留系统的方法 除了调用 COM 对象之外别无选择 充当此遗留系统与另一个系统的 API 之间的链接 在某些情况下 使用 WinFo
  • ASP.NET Core MVC 视图组件搜索路径

    在此处的文档中 https learn microsoft com en us aspnet core mvc views view components view aspnetcore 2 2 https learn microsoft
  • 从 JavaScript 中的 OnClientClick 事件中阻止 C# 中的 asp:Button OnClick 事件?

    我有一个asp Button在我的网页上 它调用 JavaScript 函数和代码隐藏方法 后者进行调用以导航到另一个页面 在 JavaScript 函数中 我正在检查条件 如果不满足这个条件 我想中止导航 以便OnClick方法未被调用

随机推荐

  • 如何获取使用 UrlFetchApp.fetch(photoLink) 获得的 jpeg 图像的大小(以像素为单位)?

    在以 HTML 格式发送电子邮件的脚本中 我添加了存储在公共共享文件夹中的图像 我使用得到的斑点UrlFetchApp fetch photoLink 但图像不一定具有正确的尺寸 因此在 html 代码中我使用宽度和高度属性 目前使用固定值
  • 检索 WordPress 根目录路径?

    如何检索 WordPress CMS 中根目录的路径 查看 WordPress 根目录中的 wp config php 文件底部 您会发现如下内容 if defined ABSPATH define ABSPATH dirname FILE
  • 已发布的 https://docs.google.com/spreadsheets 重定向到其他网址(CSV 数据)

    我们自动发布 Google 文档电子表格 一个选项卡为 CSV Google 文档提供了引用 CSV 的固定 URL 我们将此 CSV 导入到另一个用于产品数据导入的工具中 突然 这个 URL 被 Google Spreadsheet 重定
  • REMOTE_ADDR 为空,不包含在 SERVER 数组中

    搬到新服务器后我遇到了一个奇怪的问题 用于获取邮件的 cron 会检查授权 IP 其中之一默认为 127 0 0 1 移动后它停止工作 因为 REMOTE ADDR 变量未填充 它是从浏览器调用时调用的 但不是从 cron 内部运行或使用
  • 正确关闭 WebSocket(HTML5、Javascript)

    我正在研究 HTML5 WebSockets 我想知道如何优雅地关闭连接 例如 如果用户刷新页面或只是关闭浏览器会发生什么 当用户只是刷新页面而不调用时 会出现奇怪的行为websocket close 当他们在刷新后返回时 它会击中webs
  • 如何找到图像中包含的图像?

    我目前正在构建基本上相当于搜索引擎和网络漫画画廊之间的交叉点 其重点是引用来源和给予作者信用 我正在尝试找出一种方法来搜索图像以查找其中的字符 例如 假设我将红色字符和绿色字符保存为红人和绿人 如何确定图像是否包含其中之一 这不需要 100
  • 实体框架:按属性值过滤嵌套集合

    我有如下模型 class MyClass public int Id get set public List
  • 为什么项目中心对齐不起作用?

    这是我尝试创建图像网格的 HTML 代码 来源 https www w3schools com howto howto css image grid responsive asp 我想设置屏幕的图像显示中心 但align items或ali
  • 如何更改 Lollipop 之前版本和 Lollipop 版本的工具栏菜单项文本颜色

    我在应用程序中使用工具栏来进行材料设计 一切工作正常 但除了更改菜单项文本颜色时 我完全坚持该解决方案 我还发布了应拍摄的文本的屏幕截图以及我在应用程序中使用的代码 以供您参考 我尝试了几种替代方法 例如分配如下
  • Python Pandas:在 DataFrame 中查找模式

    我有以下数据框 120 万行 df test 2 pd DataFrame A end beginn end end beginn beginn end end end beginn end B 1 10 50 60 70 80 90 10
  • HTML5 视频什么时候应该回退到 Flash 播放器?

    我正在致力于为 HTML5 视频播放器实现后备机制 我有办法用 swfobject Flash 播放器替换它 但我应该如何检测是否出现任何问题 换句话说 如果我们使用以下可以抛出的错误事件列表 哪一个应该触发 Flash 播放器替换 或者如
  • 如何获取有关错误 500 - 内部服务器错误的更多信息?

    I use ajax我的 PHP 网站的许多部分的请求一切都运行良好 直到几天前我的所有 ajax请求开始给予error 500 internal server error 我可以在控制台中看到该错误 并且我还使用错误处理程序来获取有关该错
  • 使用 RDP 的 C# 远程桌面应用程序。如何生成证书?

    我在使用 MSTSCLib 从一台 PC 连接到另一台 PC 时遇到一些问题 它可以与服务器一起使用 但不能与普通工作站一起使用 private void btn connect Click object sender EventArgs
  • Python 中的语音识别

    我目前正在使用 Python 3 3 开发一个虚拟助手程序 我想在其中加入语音识别功能 有谁知道有什么 python 模块或工具可以用来做到这一点吗 任何帮助将不胜感激 我花了很多时间研究这个主题 目前我正在开发一个Python 3开源跨平
  • 自定义扩展方法来简化 LINQ to SQL 语句

    我有一段 LINQ 代码片段 需要在很多查询中使用 let catchmentId Convert ToInt32 phy PhysicalProperty binData Substring offset 3 1 phy Physical
  • 静默打印嵌入的 PDF

    我有一个网页 上面嵌入了 PDF 我的代码如下所示 我有这个 javascript 代码用于打印我的 PDF function printDocument documentId Wait until PDF is ready to prin
  • docusign 中的 apiClient.RequestJWTUserToken 不起作用

    我正在使用 DocuSign C SDK 创建一个 JWT 令牌 以使用集成器密钥模拟用户 但它会引发错误 Error while requesting server received a non successful HTTP code
  • ClassNotFoundException - 无法实例化 BroadcastReceiver

    我有一个Broadcastreceiver它检查CONNECTIVITY CHANGE有时它会崩溃并显示消息 04 05 18 23 47 080 5561 5561 tenkol design com imbrecords E Andro
  • C++中迷宫的DFS最短路径

    我无法弄清楚如何准确地使其发挥作用 我正在尝试使用 DFS 获得到达目标的最短路径 我知道 BFS 更好 但有人要求我使用 DFS 正如您所看到的 我尝试对导致最终的所有堆栈进行比较以找到目标 但它不起作用 只有导致目标的第一个堆栈被打印
  • exit() 在应该返回引用的函数内调用

    在库中 我有一个函数可以在数据库中搜索键并返回对对象的非常量引用 我想处理找不到密钥的情况 这通常是由调用函数时的错误引起的 这种情况太糟糕了 程序无法继续 所以我打印一条消息来帮助发现错误并调用exit 1 问题在于 return 语句