C++ 我需要在任何地方为函数编写 throw 子句吗?

2023-12-27

Before

考虑有一个类和一个全局函数:

例如,这是usefulfuncts.hpp

void dosome(int a, int b) throw (std::exception);

This is usefulfuncts.cpp

void dosome(int a, int b) throw (std::exception) {
   //...
}

这是aclass.hpp

class aclass {
   // Members...
   friend void dosome(int a, int b) throw (std::exception);
   // Members...
};

之后(我希望是什么)

好的!我想了解是否有必要每次都写throw条款。例如我可以这样做吗?

This is usefulfuncts.hpp

void dosome(int a, int b) throw (std::exception);

This is usefulfuncts.cpp

void dosome(int a, int b) { /* OMITTING IT! */
   //...
}

这是aclass.hpp

class aclass {
   // Members...
   friend void dosome(int a, int b); /* OMITTING IT */
   // Members...
};

这是正确的吗?仅将其放在主声明中?谢谢


省略异常规范意味着您的函数可能会抛出异常any例外。

异常规范很糟糕。几乎没有任何编译器能够正确实现该功能。自 C++11 标准以来,它们已被弃用。事实上,异常规范被认为是一次失败的实验,即使它们是 C++03 标准的一部分。

好读:
务实地看待异常规范 http://www.gotw.ca/publications/mill22.htm

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

C++ 我需要在任何地方为函数编写 throw 子句吗? 的相关文章

  • EventHandler 应该始终用于事件吗?

    我一直在愉快地使用自定义委托类型和通用编写事件Action委托类型 没有真正考虑我在做什么 我有一些很好的扩展助手Action and EventHandler这使我倾向于使用那些预定义的委托类型而不是我自己的委托类型 但除此之外 除了惯例
  • C# 和月历,选择多个日期

    我正在制作一个程序 可以帮助人们用 C 为某个部门 预订 订单 他们需要能够选择不同月份的多个日期 我更愿意拥有它 这样他们就可以单击一个日期 然后按住 Shift 键单击另一个日期以选择这两个日期之间的所有日期 并控制单击以进行单选 取消
  • .pdbs 会减慢发布应用程序的速度吗?

    如果 dll 中包含 pdb 程序调试 文件 则行号将出现在引发的任何异常的堆栈跟踪中 这会影响应用程序的性能吗 这个问题与发布与调试 即优化 无关 这是关于拥有 pdb 文件的性能影响 每次抛出异常时都会读取 pdb 文件吗 加载程序集时
  • libtool 在 Ubuntu 13.04 上构建 thrift 0.9.1 时出错

    在 Ubuntu 13 04 上构建 thrift 0 9 1 支持 C C java C perl python 时出现此错误 configure 不带任何选项运行 make 不带任何选项运行 Making all in test mak
  • 为什么在 C++ 中声明枚举时使用 typedef?

    我已经很多年没有写过任何 C 了 现在我正试图重新开始 然后我遇到了这个并考虑放弃 typedef enum TokenType blah1 0x00000000 blah2 0X01000000 blah3 0X02000000 Toke
  • 如何调整 Windows 窗体以适应任何屏幕分辨率?

    我知道这是重复的问题 但我检查了所有其他相关问题 他们的答案没有帮助 结果仍然与屏幕截图 2 中所示相同 我是 C Windows 窗体新手 如截图1所示 我有Form1有一些控件 每组控件都放在一个面板中 我在 PC1 中设计了应用程序
  • MSMQ接收和删除

    是否有任何选项可以在读取消息后将其从 MSMQ 中删除 比如 接收 删除可以作为原子操作运行吗 听起来您想查看下一条消息 然后在处理完成后接收它 Message message Queue Peek Queue ReceiveById me
  • 如何调试在发布版本中优化的变量

    我用的是VS2010 我的调试版本工作正常 但我的发布版本不断崩溃 因此 在发布版本模式下 我右键单击该项目 选择 调试 然后选择 启动新实例 此时我看到我声明的一个数组 int ma 4 1 2 8 4 永远不会被初始化 关于可能发生的事
  • 提升mapped_file_source、对齐方式和页面大小

    我正在尝试在性能很重要的上下文中解析一些大小高达几百兆字节的文本文件 因此我使用 boostmapped file source 解析器期望源以空字节终止 因此我想检查文件大小是否是页面大小的精确倍数 如果是 则使用较慢的非内存映射方法 我
  • 如何在 EF Core 2.1 中定义外键关系

    我的 DAL 使用 EF Core 2 1 这就是我的模型的样子 一名用户只能拥有一种角色 Role entity kind of master public class Role public int RoleId get set pub
  • MSChart 控件中的自定义 X/Y 网格线

    我有一个带有简单 2D 折线图的 C Windows 窗体 我想向其中添加自定义 X 或 Y 轴标记 并绘制自定义网格线 例如 以突出显示的颜色 虚线 我查看了 customLabels 属性 但这似乎覆盖了我仍然想显示的默认网格 这是为了
  • WPF DataGrid - 在每行末尾添加按钮

    我想在数据网格的每一行的末尾添加一个按钮 我找到了以下 xaml 但它将按钮添加到开头 有人知道如何在所有数据绑定列之后添加它吗 这会将按钮添加到开头而不是末尾
  • 如何测试某些代码在 C++ 中无法编译? [复制]

    这个问题在这里已经有答案了 可能的重复 单元测试编译时错误 https stackoverflow com questions 605915 unit test compile time error 我想知道是否可以编写一种单元测试来验证给
  • 用数组或向量实现多维数组

    我想使用单个数组或向量实现多维数组 可以像通常的多维数组一样访问它 例如 a 1 2 3 我陷入困境的是如何实施 操作员 如果数组的维数为 1 则 a 1 应该返回位于索引 1 处的元素 但是如果维数大于一怎么办 对于嵌套向量 例如 3 维
  • 不使用放置 new 返回的指针时的 C++ 严格别名

    这可能会导致未定义的行为吗 uint8 t storage 4 We assume storage is properly aligned here int32 t intPtr new void storage int32 t 4 I k
  • 与 Entity Framework Core 2.0 的一对零关系

    我正在使用 C 和 NET Framework 4 7 将 Entity Framework 6 1 3 Code First 库迁移到 Entity Framework Core 我一直在用 Google 搜索 Entity Framew
  • 解释这段代码的工作原理;子进程如何返回值以及在哪里返回值?

    我不明白子进程如何返回该值以及返回给谁 输出为 6 7 问题来源 http www cs utexas edu mwalfish classes s11 cs372h hw sol1 html http www cs utexas edu
  • 使用 boost 异步发送和接收自定义数据包?

    我正在尝试使用 boost 异步发送和接收自定义数据包 根据我当前的实现 我有一些问题 tcpclient cpp include tcpclient h include
  • 对多个对象使用事件处理程序

    我有 20 件物品List
  • 如何在c中断言两个类型相等?

    在 C 中如何断言两种类型相等 在 C 中 我会使用 std is same 但搜索 StackOverflow 和其他地方似乎只能给出 C 和 C 的结果 在C中没有办法做到这一点吗 请注意 这不是询问变量是否具有某种类型 而是询问两个类

随机推荐

  • 如何在 WIQL 工作项中获取层次结构

    我在 TFS 中有一个像这样的层次结构 其中 1 个功能可以有 N 个产品待办事项列表项目 而单个产品产品待办列表项目可以有 N 个任务 错误 树结构 特点1 gt PB1 gt 任务1 任务2 任务3 my Query string qu
  • 制作 Ubuntu 可执行文件

    我使用 gcc 编译器编写了一个 C 程序 现在它没有 GUI 组件 我正在使用 makefile 编译它并在终端中运行它 我需要部署它 以便可执行文件是独立的 我希望可执行文件有一个图标 单击时在终端中启动程序 谁能告诉我该怎么做 基础
  • SonarQube 中的质量门故障不会导致 Teamcity 中的构建失败

    我在 TeamCity 中建立了一个 Build 项目 并将 Sonarqube 与其集成 该项目正在构建 甚至在 SonarQube 控制台中成功发布报告 但当质量门失败时 它并不会破坏构建 我搜索并阅读了有关构建断路器的信息 但它已经受
  • 如何根据浏览器宽度动态调整CSS样式表?

    我们正在开发一款开源网络应用程序 供世界各地的艺术教师一起工作 我们需要一个漂亮的网站 它可以根据浏览器的活动宽度进行自我调整 就像 google org 或 barackobama com 做得很好一样 我们可以检测浏览器 操作系统等 但
  • 将请求记录到 django-rest-framework

    出于调试目的 我想使用 Django 的日志机制来记录每个传入请求 到达 django rest framework 的门口时的情况 Django 通过以下方式提供其请求的日志记录 仅 警告 日志级别及以上 来自 settings py 中
  • Apache 错误:无法加载 mod_access_compat.so

    我正在尝试运行 PHP 应用程序 但在尝试设置 Apache 2 4 时不断收到错误 错误是 httpd C Apache24 Apache24 conf httpd conf 第 72 行存在语法错误无法将 module mod acce
  • GitFlow:发布分支和主分支有什么区别?

    我刚刚看了一眼这个 gitflow 备忘单 http danielkummer github io git flow cheatsheet 我不明白release branch 谁能告诉我两者之间的区别release and master分
  • 在 AngularJS 中对对象数组进行分组

    基于如下所示的数组 var members name john team 1 name kevin team 1 name rob team 2 name matt team 2 name clint team 3 name will te
  • 如何获得 Firebase 节点的随机子节点?

    首先 这是我的数据库结构 我的目标是从 DE 节点获取一个随机问题对象以便稍后显示它 并且由于没有查询随机子项的内置支持 我必须自己从该迭代器以某种方式获取一个随机对象 目前 我有这段代码 但对如何将其串在一起感到困惑 DatabaseRe
  • 特征和序列化/反序列化

    假设我有两个特征想混合到一个班级中 每个特征都实现类需要的抽象方法 trait Writable def serialize out java io DataOutput trait T1 extends Writable trait A
  • 从POJO获取注释hibernate表名

    我有一个实体 其声明大致如下 Entity Table name myUserTable public class User implements Serializable 我正在创建一个通用 DAO 类 在此过程中我想检索 myUserT
  • 在这种情况下如何获得 foreach 循环之外的值?

    我试图从 mysql 数据中调用 foreach 循环中的所有值 并将该值输入到另一个 mysql select 语句中 看看我下面的代码 它只能收集一个值 我想使用第一个 foreach 循环来包含整个部分 但是 因为 foreach 值
  • 如何调整 GLUT 窗口的大小?

    from OpenGL extensions import alternate from OpenGL GL import from OpenGL GL ARB multitexture import from OpenGL GLU imp
  • 如何使用表达式构建匿名类型?

    在 C 3 0 中 您可以使用表达式创建具有以下语法的类 var exp Expression New typeof MyClass var lambda LambdaExpression Lambda exp object myObj l
  • 使用 QT 的任务计划程序 API

    我想实现一个基于定期日期的任务调度程序 有没有办法使用 QT 的 API 来实现它 另一个问题 我应该指定windows当前用户的用户名和密码吗 如果您想使用 Windows 任务计划程序 则需要使用 COM API http msdn m
  • 如何以编程方式将按钮添加到片段

    我无法设法以编程方式向片段添加按钮 按钮数量可变 我尝试使用 an addView 方法将按钮添加到 rootView 但没有 我尝试在充气之前将按钮添加到布局中 但我不知道如何获取布局 类型 id 错误的预期资源 RelativeLayo
  • 动画结束后我该怎么做?

    我有一个ImageView我用它来通过AnimationDrawable 当我想显示我的进度旋转器时 我这样做 animDrawable start ObjectAnimator ofFloat view alpha 1 0f setDur
  • 当具有该名称的文件已经存在时,如何防止 Django 更改文件名?

    就我而言 我允许用户上传头像图片并使用 user id 作为文件名 简单地说 所以就会有1 jpg 2 jpg等 但是我发现 如果我为某个已上传头像的帐户 假设用户 10 上传新头像 新文件将被命名为 10 1 jpg 这没关系 但是我不需
  • Bootstrap 选项卡中的多个 Google 地图

    我有一个引导选项卡结构 每个选项卡内都有一个谷歌地图 iframe 第一个选项卡的 iframe 看起来不错 但其他选项卡看起来未缩放且未居中 这与 iframe src 代码无关 因为我尝试用第二个和其他代码替换第一个 第一个总是工作得很
  • C++ 我需要在任何地方为函数编写 throw 子句吗?

    Before 考虑有一个类和一个全局函数 例如 这是usefulfuncts hpp void dosome int a int b throw std exception This is usefulfuncts cpp void dos