正确退出python

时间:2012-06-05 16:02:36

标签: python

我知道sys.exit()会引发一个Exit异常,所以当我运行它时我知道它不会退出:

In [25]: try:
   ....:     sys.exit()
   ....: except:
   ....:     print "oops"
   ....:     
oops

但我认为os._exit()意味着使用C调用退出,但它也导致异常:

In [28]: try:
   ....:     os._exit()
   ....: except:
   ....:     print "oops"
   ....:     
oops

有没有办法在不杀死PID的情况下这样做?

2 个答案:

答案 0 :(得分:9)

我不确定我理解你的问题,但是os._exit没有引发异常 - 你用错误的参数数量调用os._exit是:

try:
    os._exit()
except Exception as e:
    print e

#output: _exit() takes exactly 1 argument (0 given)

答案 1 :(得分:4)

如果没有Exception类,请不要使用except,因此sys.exit只会在不触发异常处理的情况下正常工作:

>>> import sys
>>> try:
...     sys.exit()
... except Exception:
...     print 'oops'
... 
$ 

还有其他异常是使用普通的except子句触发的(通常不应该),尤其是KeyboardInterrupt