C++ 异常会通过 C 代码安全传播吗?

2024-01-17

我有一个 C++ 应用程序调用SQLite http://www.sqlite.org/的(SQLite 使用 C 语言)sqlite3_exec() http://www.sqlite.org/c3ref/exec.html它又可以调用我用 C++ 实现的回调函数。 SQLite 被编译成静态库。

如果异常逃脱了我的回调,它是否会通过 SQLite 的 C 代码安全地传播到调用 sqlite3_exec() 的 C++ 代码?


我的猜测是,这取决于编译器。然而,在回调中抛出异常将是一个非常糟糕的主意。要么它完全不起作用,要么 SQLite 库中的 C 代码将无法处理它。考虑一下这是否是 SQLite 中的一些代码:

{
  char * p = malloc( 1000 );
  ...
  call_the_callback();  // might throw an exception
  ...
  free( p );
}

如果异常“有效”,C 代码就无法捕获它,并且 p 将永远不会被释放。当然,图书馆可能分配的任何其他资源也是如此。

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

C++ 异常会通过 C 代码安全传播吗? 的相关文章

随机推荐

  • TortoiseGit 中的“远程跟踪分支”在哪里?

    如何在TortoiseGit中找到 远程跟踪分支 以设置从中拉取的默认分支 打开 浏览参考 对话框 参见https tortoisegit org docs tortoisegit tgit dug browse ref html http
  • R:内部函数可以使用外部函数的变量吗?

    内部函数可以使用调用它的函数环境中存在的变量吗 inner lt function x return x y z a outer lt function x y z a lt x y z inner x 在这里 当我打电话时inner x
  • 使用 sympy 计算多元函数的泰勒级数

    我正在尝试使用 SymPy 计算依赖于三角函数的函数的泰勒级数sinc here http docs sympy org dev modules mpmath functions trigonometric html sinc functi
  • @ActiveProfiles 值未分配给配置

    如果我将它们设置为虚拟机参数 我的活动配置文件将正常工作 我有一个想要使用的测试 ActiveProfiles local 这是我正在使用的类注释 RunWith SpringJUnit4ClassRunner class ContextC
  • 使用 Twitter Bootstrap,如何自定义一页的 h1 文本颜色,而将其他页面保留为默认颜色?

    在我的索引页面上 我希望 h1 文本颜色为白色并带有阴影 但我不想更改其他页面上 h1 的默认行为 我怎样才能实现这个目标 在 Bootstrap 3 中 以下是更改文本颜色的类 p class text muted p grey p cl
  • Python 中更快的套接字

    我有一个用 Python 编写的服务器客户端 它通过 LAN 运行 该算法的某些部分使用套接字密集读取 其执行速度比几乎一样的 http pastie org 3962231用 C 编写 有哪些解决方案可以使 Python 套接字读取速度更
  • 从视图创建位图使视图消失,如何获取视图画布?

    我发现了两种从视图创建位图的方法 但一旦我这样做了 视图就会消失 我就不能再使用它了 生成位图后如何重绘视图 1st public static Bitmap getBitmapFromView View view Bitmap retur
  • 如何从java中的另一个类更新jLabel或setText?

    我正在尝试创建一个JFrame哪里的jLabel和按钮位于另一个类中 我在其中创建了一个方法putTextNow这会将文本设置为jLabel 我读到应该使用多线程来完成 这对我来说更复杂 这是我的代码 NewJFrame java priv
  • 在 JBoss 上安装 SSL 证书

    我有一台运行 JBoss 的服务器 当我在该服务器上输入错误的 URL 时 它会给出如下版本 JBossWeb 2 0 1 GA JBoss 的版本是什么 我们将为我购买并提供 SSL 证书 以便我可以将其安装在 JBoss 中 我真的很感
  • 如何为 Mac OSX 编写虚拟打印机驱动程序 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要为 OSX 编写一个 虚拟打印机驱动程序 以便当用户按 Command P 打开 打印 对话框时
  • SQL模糊匹配

    希望我没有重复这个问题 在在这里发帖之前 我在这里做了一些搜索和谷歌 我正在使用启用全文的 SQL Server 2008R2 运行 eStore 我的要求 有一个产品表 其中包含产品名称 OEM 代码 该产品适合的型号 一切都在文字中 我
  • 我如何使用 zip(), python

    例如 我有这些变量 a 1 2 b 3 4 如果我使用函数zip 对于它 结果将是 1 3 2 4 但我有这个清单 a 1 2 3 4 而且 我需要得到与第一个结果相同的结果 1 3 2 4 但是 当我这样做时 zip a I get 1
  • 在 C 中写入多个文件并迭代其名称

    我试图通过迭代 进行一些计算并将索引添加到文件名来编写一堆文件 这是我的代码的一部分 我强调了代码停止编译的位置 float AltAzCalc int d float t float Lon float RA float Dec floa
  • 计算所有 k 乘积之和的高效算法

    假设给你一个列表L of n数字和整数k
  • Jenkins 以非常高的 CPU 使用率运行

    我最近从 Jenkins 1 6 升级到 2 5 这样做之后 我注意到 CPU 使用率非常高 有时超过 300 只有 4 个核心 所以我认为它不会超过 400 我不知道从哪里开始调试这个 但这是一个线程转储 https gist githu
  • 在哪里可以找到 dojo 工具包 dijit 小部件的图标图像列表?

    我想这是一个简单的问题 但尽管进行了一些谷歌搜索 我仍然没有找到答案 有谁知道在哪里可以找到 Dojo 工具包中可用图标的列表 最好看的地方是Dojo Toolkit nightly 图标目录 http archive dojotoolki
  • 在子文件夹中搜索 VSCode,而不是整个工作区

    如何仅在工作区的一个子文件夹中进行搜索 CTRL SHIFT F searches in the whole workspace and since this is large I get way too many hits in unre
  • Objective-C - 将 CSV 解析为数组

    我如何将 CSV 解析为数组 它只是我转换为 CSV 的一列电子表格 所以应该不会太难吧 我该怎么做 使用适当的 CSV 解析器 例如https github com davedelong CHCSVParser https github
  • 如何在整数列上指定“喜欢”?

    这让我很困惑 我想我会将其提交给 SO 社区寻求帮助 用户想要选择以某个 ID 开头的所有订单 例如 123会回来123 12345 1238790等等 但是 ID 是一个 int 列 我正在使用 nHibernate 目前我的线路是 cr
  • C++ 异常会通过 C 代码安全传播吗?

    我有一个 C 应用程序调用SQLite http www sqlite org 的 SQLite 使用 C 语言 sqlite3 exec http www sqlite org c3ref exec html它又可以调用我用 C 实现的回