我开发了一个交互式数据分析工具,其中,通过Cython包装了C++高性能内核,并将其公开为Python对象。与IPython结合使用时效果很好。但是,扩展模块的本机代码崩溃(例如分段错误)也会使解释器崩溃,从而使整个 session 丢失。有可能以任何方式避免这种情况吗?是否可以将诸如分段错误之类的错误捕获为适当的Python异常?
最佳答案
faulthandler module(3.3中的新增功能,但对于较旧的版本为available)可以在系统级错误上打印回溯。
尝试处理Python代码apparently doesn't work中的错误。在C级别,您可以为SIGSEGV安装信号处理程序,但是从我发现的信息中,您可以做的事情非常有限。基本信息似乎是可以正常关闭,但无法从段故障中恢复。
关于python - Python native 扩展模块: Can interpreter fail gracefully?崩溃,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19768977/