c++ - 防止 C++ 异常使我的 Perl 脚本崩溃

标签 c++ perl exception xs

我有一个 Perl 脚本,它使用了一些可能使用 xs 包装的 C++ 库。 当库抛出异常时,即使从 eval 内部调用,它也会使我的 Perl 脚本崩溃。 如何跳过异常并防止我的脚本崩溃?

terminate called after throwing an instance of 'blaException'
  what():  blablabla.cpp:202: Failed to bla
Abort trap: 6 (core dumped)

Perl 版本为 v5.12.4

最佳答案

你不能。核心转储是致命的,所以到那时游戏就结束了。正确的解决方案是确保代码不会崩溃,但如果您无法控制该 C++ 库,那将很困难。

也许可以通过在调用库之前 fork 脚本然后在它确实崩溃时重新启动来解决问题,但这不是我曾考虑在任何地方的生产中使用的解决方案。

关于c++ - 防止 C++ 异常使我的 Perl 脚本崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24839132/

相关文章:

c++ - 为什么在 C 中不能重载?

C++ 逗号运算符重载和引用 vector

c++ - 了解 void f(const T& param) 中参数的类型

c - 用 C 编写可移植的命令行包装器

perl - 如何在 SOAP::Lite 中处理命名空间生成?

Python多非托管资源和异常安全

c++ - 为什么我得到输出 'b(1) dc dvfunc' ?

python - 使用Unix工具处理文本: search and replace all text that are not between some lines

java - 结果集在 .next() 第一次迭代时关闭异常

exception - 在 Scala 中出现异常时重启迭代器