zoukankan      html  css  js  c++  java
  • 如何讓你的程序在退出的時候執行一段代碼?

    使用python自帶的一個atexit模塊

    測試代碼:

    import atexit
    
    @atexit.register
    def clean():
      print("程序推出時會執行的代碼已經被執行!")
    
    def test():
      example = {'a': 1, 'b': 2}
      print(example['c'])   # 此錯出錯
    
    test()

    輸出的結果是這樣的:

    Traceback (most recent call last):
      File "e:FileOtherTextscript練習讓程序在退出的時候執行一段代碼.py", line 14, in <module>
        test()
      File "e:FileOtherTextscript練習讓程序在退出的時候執行一段代碼.py", line 11, in test
        print(example["c"])  # 此錯出錯
    KeyError: 'c'
    程序推出時會執行的代碼已經被執行!

    很明顯能看出由於報錯,程序意外終止,但是clean()函數依舊被執行了,程序即使不報錯clean()的內容依舊會被執行,這裡就不再演示,不信的話可以自己嘗試一下,

    注意事項:

    • 如果clean()函数有参数,那么你可以不用装饰器,而是直接调用atexit.register(clean_1, 参数1, 参数2, 参数3='xxx')。
    • 如果程序是被你没有处理过的系统信号杀死的,那么注册的函数无法正常执行。
    • 如果发生了严重的Python内部错误,你注册的函数无法正常执行。
    • 如果你手动调用了os._exit(),你注册的函数无法正常执行。

  • 相关阅读:
    web.config中httpRedirect
    时间复杂度O(n)与空间复杂度O(1)
    NserviceBus过期处理
    struts的生命周期
    myeclipse 更改字体
    研磨struts2地址
    jQuery 实现公告无缝滚动
    统计网站访问图形数据链接
    工作经常使用的SQL整理
    使IE6下PNG背景透明的七种方法
  • 原文地址:https://www.cnblogs.com/ltozvxe/p/12868402.html
Copyright © 2011-2022 走看看