【python进阶】Python程序退出: os._exit()和

系统 167 0
原文链接: https://blog.csdn.net/index20001/article/details/74294945

概述

Python程序有两种退出方式: os._exit() sys.exit() 。我查了一下这两种方式的区别。
os._exit() 会直接将python程序终止,之后的所有代码都不会执行。
sys.exit() 会抛出一个异常: SystemExit ,如果这个异常没有被捕获,那么python解释器将会退出。如果有捕获该异常的代码,那么这些代码还是会执行。

举个例子

            
              
                import
              
               os
 

              
                try
              
              
                :
              
              
    os
              
                .
              
              _exit
              
                (
              
              
                0
              
              
                )
              
              
                except
              
              
                :
              
              
                print
              
              
                (
              
              
                'Program is dead.'
              
              
                )
              
            
          

这个 print 是不会打印的,因为没有异常被捕获。

            
              
                import
              
               sys
 

              
                try
              
              
                :
              
              
    sys
              
                .
              
              exit
              
                (
              
              
                0
              
              
                )
              
              
                except
              
              
                :
              
              
                print
              
              
                (
              
              
                'Program is dead.'
              
              
                )
              
              
                finally
              
              
                :
              
              
                print
              
              
                (
              
              
                'clean-up'
              
              
                )
              
            
          

这里两个 print 都可以打印,因为 sys.exit() 抛出了异常。

结论

使用 sys.exit() 来退出程序比较优雅,调用它能引发 SystemExit 异常,然后我们可以捕获这个异常做些清理工作。而 os._exit() 将python解释器直接退出,后面的语句都不会执行。

一般情况下用 sys.exit() 就行; os._exit() 可以在 os.fork() 产生的子进程里使用。


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请请扫描上面二维码支持博主1元、2元、5元等您想捐的金额吧,狠狠点击下面给点支持吧

发表我的评论
最新评论 总共0条评论