boost::ifind_first 会引发什么样的异常?
What kind of exception is thrown by boost::ifind_first?
我一直觉得提升文档读起来相当令人沮丧,尽管我尽了最大的努力,但我无法确定在调用 boost::ifind_first 时可能会抛出什么样的异常。文档指出:
此功能提供了强有力的异常安全保障
但是,没有关于可能引发哪种类型的异常的说明。所以我的主要问题是你如何确定ifind_first可能会抛出什么异常?
这是一个艰难的答案,因为正如您所说,他们的文档可能会使用踢屁股。 话虽如此,当提升说:
此功能提供了强有力的异常安全保障
他们指的是通用组件中的异常安全,其中指出:
强保证提供完整的"提交或回滚"语义。在 对于C++标准容器的情况,这意味着,例如,如果 引发异常时,所有迭代器都保持有效。我们也知道 容器具有与异常之前完全相同的元素 被扔了。失败后没有效果的事务具有明显的 优点:程序状态简单且可预测,在 例外。在C++标准库中,几乎所有的操作 在"基于节点的容器"列表中,设置、多集、映射和多映射 提供有力保障.4(。
我会考虑使用boost::exception
类来捕获一般异常,向它提供应该破坏它的数据并弄清楚它从那里抛出什么。
相关文章:
- 处理多个异常集合的C++方法
- 我在c++代码中生成了一个运行时#3异常
- 孤立代码块在结构中引发异常
- C++中的赋值发生,尽管右侧出现异常
- 从构造函数抛出异常时如何克服内存泄漏
- 异常属于C++中的线程还是进程
- 当类定义不可见时捕获异常
- 引发异常:读取访问冲突**dynamicArray**为0x1118235.发生
- 为什么异常不退出程序?
- 为什么我应该在异常处理中使用std::cerr而不是std::cout
- 如何修复链表类实现的未处理异常0xDDDDDDDD
- 关于:C++中异常对象的范围:为什么我没有得到副本?
- 是什么导致了Unity 3D中的"错误线程异常"?
- 返回的指向C++对象的链接是什么样的
- 如何将strftime中的格式错误作为异常捕获
- 创建具有 new in 函数和"this is nullptr"异常的对象
- 尝试使用智能指针时引发异常
- 这些是什么样的错误?即使我不在 Linux 上工作,我也遇到了 Linux 错误
- boost::ifind_first 会引发什么样的异常?
- 格式化的输出运算符标准iostream对象可以抛出什么样的异常