- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
情况是我有一个用 C++ 编写的动态库,它由另一个动态库为 Python 包装,该动态库也是用 C++ 编写的(具体而言由 SIP 生成)。第一个动态库定义了一个函数do_raise
,它抛出一个异常RaiserError
,它是std::exception
的子类。第二个动态库在包装 do_raise
时 try catch RaiserError
以便将其转换为 Python 异常。
使用 Visual C++ 构建,一切都按预期工作,并且 RaiserError
被正确捕获。但是,在 Linux 上使用 g++ 时,不会捕获 RaiserError
。如果我 try catch std::exception
(RaiserError
的基类),它会起作用。这里出了什么问题?这两个库是否对 RaiserError
类型有不同的概念,因为它不会被 catch block 识别?
为了测试,我还编写了一个小的可执行文件,它调用 C++ 库中的 do_raise
,在这里我甚至可以使用 g++ 捕获 RaiserError
。
最佳答案
您无法跨模块边界可靠地传递 C++ 异常。在 Windows 上(至少对于 32 位进程)有一个标准的 ABI,但是对于 gcc,你就不走运了。
关于c++ - g++ 问题 : exception not caught,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1458765/
这是测试场景: Plugin A 有一个工具类 A.xyz(),它提供了一个方法来抛出 java.util.NoSuchtElementException 插件 B 提供“功能”。 片段 F,它使用
我在java中得到了这段代码: public static void main(String[] args) { try{ Class tryLoadi
如果这个问题听起来很幼稚,请原谅。 在尝试递归打开文件连接后尝试在closeAllConnections()块中使用tryCatch()时,似乎未正确捕获该错误。 这是示例代码: fileOpenRe
过去 2 天我一直在使用 DBUnit,我在比较表格和 xml 文件时遇到了问题。 我粘贴了所有代码并简化了一些代码,以便人们可以尝试找出问题所在。 实际上,执行提取(从 DB2)的方法效果很好。我只
例如: Unhandled error in Deferred: Unhandled Error Traceback (most recent call last): File "/opt/zen
我正在 try catch 在 JavaScript 文件中抛出(并捕获)名称为 FooError 的错误。但是,也有数百个名为 BarError 的错误被抛出和捕获。 当我启用“Pause On C
我正在 dreamhost 上构建 Django +MySQL,但遇到错误消息: 渲染时捕获异常:(1064,“您的 SQL 语法有错误;请检查与您的 MySQL 服务器版本相对应的手册,了解在 ')
我正在尝试编写一个 Google-Appengine 应用程序,当数据存储写入被禁用时,它会很好地失败 目前我的 main() 看起来像这样: def main(): make_datasto
我按照 Kii Cloud 教程创建和归档对象,并尝试将其实现到我自己的应用程序中。它的基本作用是,当用户单击“existingButton”时,它会打开一个新 Activity ,用户可以在其中从图
我正在尝试设置 Django 站点 (OSQA),但无法使其正常工作。 存在一些问题,其中之一是当我尝试查看用户的个人资料时,出现以下异常: 有人可以指出问题可能出在哪里吗? TemplateSynt
情况是我有一个用 C++ 编写的动态库,它由另一个动态库为 Python 包装,该动态库也是用 C++ 编写的(具体而言由 SIP 生成)。第一个动态库定义了一个函数do_raise,它抛出一个异常R
下面的查询... SELECT YEAR(TRY_CAST(m.MetaValue AS DATE)) FROM MetaData m ...导致此错误: String or binary data
以下代码产生错误 DatagramSocket socket = new DatagramSocket(); java.net.* 包含在顶部 错误是未报告的异常java.net.SocketExce
最近我开始用 Java 开发自己的 IRC 客户端/服务器。 NetBeans 说我有一个未处理的 IOException。但是,查看我的代码,我执行了一个捕获 IOException 的 try-c
这个问题已经有答案了: What does "error: unreported exception ; must be caught or declared to be thrown" mean a
我的表单中有一个表格,其中包含下拉列表和隐藏的输入。 JSP:
我正在尝试通过 OpenCV.js 使用面部识别,但是当我调用 CascadeClassifier 对象的 detectMultiScale() 方法时,我收到错误: Uncaught 6446128
我已经为这个程序工作了很长一段时间,我的大脑被炸了。我需要一些正在查看的人的帮助。 我正在尝试制作一个逐行读取文本文件的程序,并将每一行制作成一个ArrayList,这样我就可以访问每个标记。我究竟做
我正在对 fork()、exec() 和相关的 UNIX 调用进行赋值,我需要在其中显示(子)进程的僵尸状态。这是相关的代码片段: pid = vfork(); //used vfork() for
我遇到的问题与 this question 中的问题类似.与那个问题不同的是,我有正确的设置(API key 在 Google 控制台上启用的 list 、 map 和地点 API 中指定)因为代码大
我是一名优秀的程序员,十分优秀!