作为我的一个程序的一部分,我想捕获MemoryError
并记录它们。目前,我正在使用traceback.format_exception
格式化所有其他异常;我也想这样做MemoryError
。
但是,使用format_exception
需要使用更多内存,这正是我在内存不足时无法做到的。
做什么?
当我被抛出时,MemoryError
除了终止我还能做什么?理想情况下,我会记录它们然后恢复程序,前提是释放处理程序和 thrower* 之间的堆栈部分已经为我释放了足够的内存。
(*以及那些仅通过从该堆栈部分发出的引用保持活动状态的堆对象)