我可以从旧版 C 回调中抛出 C++ 异常吗?

2024-02-08

我有使用一些 C 库的 C++ 代码。 C 库采用 C 语言回调。我在 C++ 代码中编写了一个回调,现在我需要以某种方式报告它的错误(但它返回 void)。我想知道是否可以从 C++ 代码中使用的 C 回调抛出异常?

这对我来说很难理解。

谢谢,博达·西多。


是的,您应该能够这样做。但是,请记住,C 库完全有可能不是为了异常安全而编写的,因此您可能会使该库的某些结构处于某种不一致的状态。这完全取决于具体的库和具体的回调函数。如果不出意外的话,该库可能必须从一开始就考虑到该回调的 C++ 支持。

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

我可以从旧版 C 回调中抛出 C++ 异常吗? 的相关文章

随机推荐

  • 如何在android webview中启用默认突出显示菜单?

    如何在 android webview 中启用默认文本突出显示菜单 例如 复制 粘贴 搜索 共享 在 Android 1 5 2 3 上工作 您可以使用emulateShiftHeld 自 2 2 起公开 但现在已弃用 此方法将您的 Web
  • 使用 'hd' 参数限制 Google OAuth 访问一个域 (Django / python-social-auth)

    我正在构建一个内部网络应用程序供我的公司使用 并希望使用我们的 Google Apps 域来管理来自我们公司域用户名的访问 本问题的其余部分为 example com 我在用着 Django 1 9 5 python social auth
  • 如何在日期字段上显示日期选择器日历

    这是关于如何使用 jQuerydate picker在 django 支持的站点中 models py is from django db import models class holidaytime models Model holid
  • 对数组使用限制?

    有没有办法告诉 C99 编译器我访问给定数组的唯一方法是使用 myarray index 说这样的话 int heavy calcualtions float restrict range1 float restrict range2 fl
  • 为 iPhone 本地化货币

    我希望我的 iPhone 应用程序允许用户使用适当的符号 等 输入 显示和存储货币金额 NSNumberFormatter 会做我需要的一切吗 当用户切换其区域设置并且这些金额 美元 日元等 存储为 NSDecimalNumbers 时会发
  • Java 中 HTML 字符编码的转换

    我们正在尝试下载网页源代码 但是由于字符编码的原因 我们无法正确看到某些特定字符 例如 我们尝试了以下代码来转换字符串 text 变量 的编码 byte xyz text getBytes text new String xyz windo
  • React:搜索和过滤功能存在问题

    我正在开发一个组件 它应该能够 按输入搜索 使用输入字段 在触发 onBlur 事件后将调用一个函数 之后onBlur事件开始寻找 方法将运行 按所选流派过滤 用户可以从其他组件中从流派列表中选择流派 之后onClick事件启动过滤器 方法
  • 使用 Facebook 图表来获取粉丝页面的粉丝?

    我有一个粉丝页面 位于http www facebook com shop4tronix http www facebook com shop4tronix 我可以通过以下方式访问此页面上的信息 http graph facebook co
  • 文本区域 onresize 不起作用

    根据w3schools
  • 返回主菜单不断循环菜单

    当程序第一次启动时 我可以成功地从主菜单中选择任何选项 但是 当我从任何子菜单中选择 返回主菜单 选项时 它都会返回主菜单 但无论我之后再次按哪个选项 它都会继续循环该菜单 只允许我选择返回主菜单选项 如何将选择重置到不会继续循环的位置 我
  • GDB源路径

    如何让gdb使用不同的目录来查找源文件 例如 我在编译期间的源文件位于目录中 home foo bar c 接下来 我将其移动到目录中 tmp debug home foo bar c 如何强制gdb在该目录中搜索 根据这个网站 https
  • 基于有序对多关系对描述符进行排序

    我的核心数据模型的描述 项目和问题实体 项目有一个有序的一对多关系至已命名问题的问题 问题与名为parentProject 的项目具有一对一的关系 这是我获取问题的代码 let fetchRequest NSFetchRequest ent
  • 如何编写混淆矩阵

    我用Python写了一个混淆矩阵计算代码 def conf mat prob arr input arr confusion matrix conf arr 0 0 0 0 for i in range len prob arr if in
  • 如果没有 firebug 断点,jquery ajax 将无法工作

    我使用以下方法来调用 php function validateEmaiAjax email val null warning load https localhost Continental 20Tourism register ajax
  • 如何在 Cordova 中从 CDVPlugin 显示 ViewController?

    我已经为此苦苦挣扎了几天 但无法让它发挥作用 也找不到其他人似乎已经解决了这个问题 希望有人可以提供帮助 我有一个简单的 ViewController 在 Swift 的故事板中有 2 个视图 我试图通过 Cordova 插件打开它 And
  • 是否可以在 TypeScript 中的元组上使用 Array.prototype.map(),同时保留返回类型中的元组长度?

    我希望如果我使用内置的map在 TypeScript 中对长度为 N 的元组执行函数 则返回类型也将是长度为 N 的元组 元素的类型可能不同 具体取决于传递给的函数 map 相反 返回类型只是回调函数返回的任何类型的标准可变长度数组 元组的
  • 如何在打字稿中扩展 Array

    在帖子中 打字稿扩展字符串静态 https stackoverflow com questions 17843215 typescript extend string static 我得到了一些我们可以扩展打字稿现有基类的内容 例如添加新方
  • 提交按钮在 asp.net mvc 中不起作用

    我有一个模型 public class FormCreateModel public FormModel formInfo get set public FieldModel fieldInfo get set public Institu
  • JQuery Fancybox - 多个内联实例

    我试图调用多个内联项目 当我单击它们时 它只显示第一个项目的内容 我正在拔头发 请帮忙 我的 JavaScript 调用 My HTML div class atrack img src images albumcovers Italian
  • 我可以从旧版 C 回调中抛出 C++ 异常吗?

    我有使用一些 C 库的 C 代码 C 库采用 C 语言回调 我在 C 代码中编写了一个回调 现在我需要以某种方式报告它的错误 但它返回 void 我想知道是否可以从 C 代码中使用的 C 回调抛出异常 这对我来说很难理解 谢谢 博达 西多