![](/img/trans.png)
[英]How to gracefully end asyncio program with CTRL-C when using loop run_in_executor
[英]Saving program state when user invokes Ctrl-C
在python中,當用戶調用Ctrl-C時會發生什么? 我是否有可能保存程序狀態?
上下文管理器怎么樣? __exit__()
部分是否被執行?
基本上,在主線程內引發了KeyboardInterrupt
異常。 所以,是的,您可以通過在try / except塊中捕獲它來處理它,並執行__exit__()
部分
https://docs.python.org/2/library/exceptions.html#exceptions.KeyboardInterrupt
這就是atexit模塊的用途。 您可以注冊多個退出處理程序。 您可以通過運行此程序並觀察顯示的消息來查看它的工作情況:
import atexit
@atexit.register
def exithandler():
print("Exit trapped!")
if __name__ == '__main__':
while True:
pass
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.