3

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を強制終了せずにこれを行う方法はありますか?

4

2 に答える 2

9

あなたの質問を理解できるかどうかはわかりませんがos._exit、例外は発生していませんos._exit。間違った数の引数で呼び出すと、次のようになります。

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

#output: _exit() takes exactly 1 argument (0 given)
于 2012-06-05T16:07:08.903 に答える
4

exceptExceptionクラスなしで使用しないでくださいsys.exit。例外処理をトリガーしなくても、正常に機能します。

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

プレーンなexcept句でトリガーされる他の例外があります(そして一般的にはそうすべきではありません)、特にKeyboardInterrupt

于 2012-06-05T16:07:04.373 に答える