2017-12-04 12 views
2

Python documentationでは、外側のレベルで終了呼び出しをインターセプトすることができると言われています。では、「外部レベルでの傍受」は実際にここでは何を意味していますか? 具体的には、通話を傍受することは何を意味しますか?sys.exitのドキュメントでPython呼び出しをインターセプトすることは何を意味していますか?

+1

微妙なセマンティックノード:ドキュメントは、「exit」の呼び出しではなく、exit * attempt *をインターセプトすることを指します。これは、あなたが傍受/捕捉することができる 'exit'によって引き起こされる例外です。 – chepner

答えて

2

つまり、except SystemExitは発生した例外をキャッチして、Pythonを終了するときに試行された呼び出しを傍受します。 sys.exitは、処理できるSystemExitを上げることによって実装されています。適切なexcept句を使用して

from sys import exit 
try: 
    exit("Exiting") 
except SystemExit as e: 
    print("Well, no you're not.") 

作品だけで罰金と執行との継続します。あなたはそれを傍受した。

@chepnerが指摘するように、コールは傍受されていません。 exitへの呼び出しが完了しました。結果の例外は、指定した例外ハンドラによって傍受されます。

+0

これは、傍受されていないまま放置されていると、通話が終了してプログラムが終了することを意味します。 –

+0

@ApurvaKunkulol。 –

関連する問題