异常类 - What() 函数

2024-01-12

我目前正在开发自己的异常类,该类继承自std::exception,我不确定我是否应该自己做what()或者只是打电话std::exception("message")在我的类构造函数中。 这是我当前的代码:

FilterException::FilterException(const char* message, int num) noexcept :
    error_message(message), error_number(num) {}

const char* FilterException::what() const noexcept
{
    return error_message.c_str();
}

FilterException::~FilterException() noexcept
{
}

int FilterException::getErrorNumber() const noexcept
{
    return error_number;
}

所以,我的问题是,我应该像这样保留它,还是对构造函数进行更改并摆脱what() ?


首先,std::exception("message")构造函数是 VC++ 的实现细节。它在大多数其他实现中不存在。

将什么消息存储在std::string乍一看似乎很方便,但它为内存不足的情况增加了一个极端情况:复制字符串might结果是bad_alloc例外。在尝试处理第一个异常时发生新的异常并不是那么好。

直接派生的一种选择std::exception http://en.cppreference.com/w/cpp/error/exception/exception是从预定义的异常之一派生而来<stdexcept> http://en.cppreference.com/w/cpp/error/exception, 例如std::runtime_error http://en.cppreference.com/w/cpp/error/runtime_error。这些例外情况do让构造函数接受字符串参数,并且已经以某种方式解决了双异常问题。大概是由not存储一个std::string.

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

异常类 - What() 函数 的相关文章

  • is_integral 与 is_integer:其中之一是多余的吗?

    是积分 http en cppreference com w cpp types is integral and 是整数 http en cppreference com w cpp types numeric limits is inte
  • dup2() 和 exec()

    include
  • C# 测试活动的互联网连接。 Ping google.com

    C 2008 我正在使用此代码来测试互联网连接 因为我的应用程序必须登录到网络服务器 但是 如果用户互联网连接失败或电缆被拔出 我必须通知用户 Ping www google com to check if the user has a i
  • binary_log_types.h:没有这样的文件或目录

    我正在编译一个小型 mysql C 项目并且 遇到以下错误 C Program Files x86 MySQL MySQL Server 5 7 include mysql com h 22 30 fatal error binary lo
  • 为什么这个 oracle 批量插入不起作用?

    我正在尝试将一些数据批量插入到 oracle 数据库中 我按照文档中的示例进行操作 this DataBaseAccess new OracleConnection connString var dataAdapter new Oracle
  • C# 并行与并行线程代码性能

    我一直在测试 System Threading Parallel 与线程的性能 我很惊讶地发现并行比线程花费更长的时间来完成任务 我确信这是由于我对并行的了解有限 我刚刚开始阅读 我想我会分享一些片段 如果有人可以向我指出并行代码比线程代码
  • WPF Dispatchertimer 延迟反应/冻结

    在我的 WPF 应用程序中 我使用 3 个不同的 DispatcherTimers 一种是用于显示当前时间 一种是每 5 秒运行一次数据库查询 第三个每 1 秒刷新一次自定义按钮的值 当我的程序运行时 有很多延迟 冻结 例如 时间开始正确计
  • NHibernate IQueryable 集合作为 root 的属性

    我有一个根对象 它有一个集合属性 例如 I have a Shelf object that has Books Now public class Shelf public ICollection
  • 在目标 VS 安装时,VSIX 扩展内部使用的 WPF-Log4Net 未输出日志

    当 Log4net 在 VSIX 扩展中使用并安装在另一个目标 VS 上时 它不会记录日志 我有一个 WPF 解决方案 我下载了 log4net dll 添加了 log4net config 并将 复制到输出目录 值设置为 始终复制 log
  • 我要恢复我的记忆!我怎样才能真正处理一个控件?

    我正在制作一个应用程序 它创建大量的窗口控件 按钮和标签等 它们都是通过函数动态生成的 我遇到的问题是 当我删除控件并处置它们时 它们不会从内存中删除 void loadALoadOfStuff while tabControlToClea
  • 修剪 UIImage 边框

    这是我想要修剪的图像的示例 我想去掉图像周围的边框 在本例中是顶部和底部的黑条 我在Github上找到了一个库 CKImageAdditions https github com cmkilger CKImageAdditions 但是它似
  • 为什么我不能从对中返回 unique_ptr?

    为什么我不能从对中返回 unique ptr include
  • 试图使用加密来混淆我的项目打破了它

    我试图尝试不同的混淆选项 为了做到这一点 我首先尝试了加密货币 以下是我遵循的步骤 打开加密向导并选择一些选项 选择我的解决方案文件 完成向导后 我看到有些 Dll 被很好地混淆了 但我的项目现在无法构建 我注意到的两件事是 我的文件夹中有
  • Python 函数可能会引发哪些异常? [复制]

    这个问题在这里已经有答案了 Python 中有什么方法可以确定 内置 函数可能引发哪些异常 例如 文档 http docs python org lib built in funcs html http docs python org li
  • 三种 System.Drawing 方法表现出缓慢的绘制或闪烁:解决方案?或其他选择?

    我正在通过 System Drawing 进行一些绘图 但遇到了一些问题 我将数据保存在队列中 并将该数据绘制 绘制 到三个图片框中 此方法填充图片框 然后滚动图形 所以不要在以前的绘图上绘制 并且逐渐看起来更混乱 我找到了两种绘制图表的解
  • 如何在asp.net core 6中注入IConfiguration

    web api 应用程序中不再有 Startup cs 我们以前可以注入IConfiguration进入那个Startup class public class Startup public Startup IConfiguration c
  • 用于 nmap 输出的 C++ xml 解析器

    我是 nmap 的新手 我在 nmap 教程中看到 https nmap org book man output html https nmap org book man output html oX 选项可用于获取 xml 格式的 nma
  • 在Framework 4.6项目中使用.net core DLL

    我已经在 net core 2 0 中构建了一个 DLL 现在我想在使用 net 4 6 1 框架的 WinForms 项目中使用它 我可以引用该 dll 但收到 System IO FileLoadException 表示找不到 Syst
  • char[length]初始化并处理

    我定义了一个字符数组 char d 6 如果我在以下方面有误 请纠正我 此时没有为变量分配内存d 现在我要初始化它 d aaaaa 这种初始化之后 就不需要释放内存了 它将自动完成 我怎么知道是否char 被初始化了吗 我正在寻找类似的模式
  • DataGridView 捕获用户行选择

    我在处理选择时遇到问题DataGridView 我的网格视图包含一个金额列 表单上有一个文本框 应显示所选网格视图行的总数 因此 我需要在用户选择 取消选择 gridview 行时捕获事件并相应地计算 添加 减去 金额 我找到了两种方法 使

随机推荐

  • 突出显示活动选项卡 - CSS

    我有一个使用 CSS 的小型选项卡式导航设置 当鼠标悬停在选项卡上时 颜色会发生变化 很棒 但是 当我单击一个选项卡并导航到相应的页面时 我希望该选项卡 活动选项卡 保持突出显示 指示当前页面 我目前正在通过使用类 currenttab 然
  • 如何限制asp.net中的文件夹访问

    如何限制asp net中的文件夹访问 就像我不希望任何其他人通过链接在浏览器中看到我的上传文件夹http www example com Uploads http www example com Uploads 对于下一代 对我有用的答案是
  • 列表作为字典的键

    我有多个元组列表 例如 1 2 3 4 2 5 6 7 3 我希望将其作为字典的键 因此字典中的每个键都是元组列表 不幸的是 根据TypeError我越来越 unhashable type list 看来python不喜欢哈希列表 我的元组
  • VBScript DateDiff 月份

    我在获取两个日期之间的月份日期差异时遇到问题 这是一个示例 DateDiff m 2014 10 17 2014 10 30 上面的代码返回 0 个月 因为它还不到一个月 但 DateDiff m 2014 10 17 2014 11 01
  • MongoDB C# 使用 Guid 更新插入

    当尝试在 Mongo 中执行 upsert 操作时 我希望它生成 ID 的 GUID 而不是对象 ID 在本例中 我正在检查以确保具有特定属性的对象尚不存在 并且如果发生更新 实际上会引发异常 这是类定义的存根 public class E
  • 我是否需要同步 invokeAll 调用的结果?

    我正在增强现有的算法 该算法由多个独立步骤组成 以使用并发任务 每个任务都会创建多个对象来保存其结果 最后 我想要一个从控制方法返回的所有结果的列表 目前 我的代码看起来像这样 private final ExecutorService p
  • iOS 上的 Chrome 中未触发 .click 事件

    当用户单击移动设备上的菜单栏时 我使用以下代码在我的网站上显示下拉菜单 mobile menu click function nav toggleClass open mobile menu toggleClass open 它在桌面浏览器
  • 使用正则表达式解析有效的父目录

    给定字符串a b c d它代表一个完全限定的子目录我想为父树上的每个步骤生成一系列字符串 即a b c a b and a 使用正则表达式我可以做一个非贪婪的 这会给我匹配的a b and c或贪婪的 这会给我一场比赛a b c 有没有办法
  • 我可以随我的应用程序一起分发 JDK 吗?

    我正在开发一个名为妖娆 http enchanting robotclub ab ca 该应用程序基于Scratch http scratch mit edu 发出 Java 源代码并对其进行编译 以便上传到 LEGO Mindstorms
  • 用于生产时 Sklearn MultiLabelBinarizer() 错误

    编辑 我已更改代码 从 mlb 更改为 TfIdfVectorizer 我仍然面临一个问题 请看下面我的代码 from sklearn externals import joblib from sklearn preprocessing i
  • 配置 Gradle 以将主类和测试类包含到我的 .jar 存档中

    如何配置 Gradle 以将主类和测试类包含到我的 jar 存档中 目前构建的 jar构建 库目录缺少我的测试类 它仅包括来自以下来源的类项目根目录 src main java com packageGradle 将它们编译成后的 jar
  • 如何在应用程序未运行时模拟位置

    我正在构建一个具有地理围栏功能的 iOS 8 应用程序 我需要对此进行测试 并且我知道我可以使用预配置的位置或提供 GPX 文件来模拟 Xcode 中的位置 然而 由于这个应用程序需要在被杀死时根据区域监控进行操作 用户在多任务处理中向上滑
  • 如何使用自定义工厂方法注册开放泛型?

    TL DR 我可以用 Autofac 创建一个通用工厂 以便我可以注入IProduct
  • 将列表列转换为数据框

    我在 Spark 数据框中有一列列表 features 0 45 63 0 0 0 0 0 0 0 85 0 69 0 0 89 56 0 0 0 0 如何将其转换为 Spark 数据框 其中列表中的每个元素都是数据框中的一列 我们可以假设
  • 分析网络软件/具有大量系统调用等待的分析软件

    我正在开发一个复杂的网络软件 但我无法确定如何提高系统性能 特别是在使用阻塞同步调用的软件部分 由于系统的这一部分正在进行大量计算 因此几乎不可能确定该组件的缓慢是由这些计算引起的还是由于等待系统的其他部分引起的 是否有任何轻量级分析器可以
  • 在模式推断解析 json 中检测到格式错误的记录

    我在尝试使用 ADF 中的数据集解析从 Blob 存储读取的基本 Json 时遇到一个非常令人沮丧的错误 我的 Json 如下 Bid 0 197514880839 BaseCurrency AED Bid 0 535403560434 B
  • 使用两个下拉按钮构建一个散点图,一个用于 x 轴,一个用于 y 轴

    我希望构建一个散点图 但使用 2 个下拉列表 我可以在一个用于 x 轴的变量和另一个用于 y 轴的变量之间切换 例如总测试和总案例 或最近案例和总案例 我尝试构建一个我通过替换找到的解决方案 cols dd Total tests Tota
  • SQLAlchemy 声明式:没有任何主键的表?

    如何使用ORM声明类创建没有主键的表 如果我没有制作任何专栏 它就无法启动primary key True SQLAlchemy 核心不会抱怨缺少主键 因此可以使用以下命令创建这样的表Table 但是ORM在设计上需要一种方法来识别对象对应
  • setColorFilter 不起作用

    我正在尝试在图像视图上实现一个简单的滤色器 将黑色图像变成白色图像 为了实现这一目标 我执行以下操作 weatherImg setColorFilter Color BLACK PorterDuff Mode MULTIPLY weathe
  • 异常类 - What() 函数

    我目前正在开发自己的异常类 该类继承自std exception 我不确定我是否应该自己做what 或者只是打电话std exception message 在我的类构造函数中 这是我当前的代码 FilterException Filter