在处理内存不足错误之前,可以使用以下代码示例来捕捉并记录最后一个进程:
import sys
import traceback
import psutil
try:
# 运行你的代码
# ...
except MemoryError:
# 获取最后一个进程的信息
last_process = psutil.Process()
# 获取进程的 ID 和名称
process_id = last_process.pid
process_name = last_process.name()
# 获取进程的堆栈跟踪信息
stack_trace = traceback.format_exc()
# 将异常信息写入日志文件
with open('memory_error.log', 'a') as f:
f.write(f"MemoryError occurred in process {process_name} (PID: {process_id})\n")
f.write(stack_trace)
# 打印错误信息
print(f"MemoryError occurred in process {process_name} (PID: {process_id})")
print(stack_trace)
# 退出程序
sys.exit(1)
上述代码使用了以下库:
sys
:用于退出程序traceback
:用于获取堆栈跟踪信息psutil
:用于获取当前进程的相关信息在捕捉到MemoryError
异常时,代码会获取最后一个进程的 ID、名称和堆栈跟踪信息,并将其写入日志文件。然后,程序将打印错误信息并退出。你可以根据需要对日志文件的路径和文件名进行修改。