在Python中,当用户调用Ctrl-C时,会发生什么?我有可能保存程序状态吗?
那么上下文管理器呢?__exit__()
部分是否会被执行?
在Python中,当用户调用Ctrl-C时,会发生什么?我有可能保存程序状态吗?
那么上下文管理器呢?__exit__()
部分是否会被执行?
基本上,在主线程内会引发 KeyboardInterrupt
异常。因此,您可以通过在try/except块中捕获它来处理它,并且__exit__()
部分将被执行。
https://docs.python.org/2/library/exceptions.html#exceptions.KeyboardInterrupt
import atexit
@atexit.register
def exithandler():
print("Exit trapped!")
if __name__ == '__main__':
while True:
pass