我有一个Perl脚本,它使用一些c++库,可能使用xs包装。当库抛出异常时,即使从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你的脚本之前,你调用到库,然后重新启动,如果它崩溃,但这不是一个解决方案,我从来没有考虑在生产中使用任何地方