今日私は、子スレッドから呼び出されたsys.exit()
がメインプロセスを強制終了しないという事実に反して走りました。私は前にこれを知らなかった、これは大丈夫ですが、私はこれを実現するために長い時間が必要でした。 sys.exit(msg)
が〜stderr
と印刷されていた場合、保存時間が大幅に短縮されます。しかし、それはしませんでした。Python: `sys.exit(msg)`がスレッドから呼び出され、 `msg`をstderrに出力しないのはなぜですか?
私のアプリケーションでは実際のバグではないことが判明しました。それは意義のあるエラーで意味のあるエラーでsys.exit(msg)
と呼ばれましたが、私はこれを見ることができませんでした。
sys.exit()
it is stated
: 「[...]他の目的は、1の終了コードでsys.stderr
、その結果に印刷されている」
これは、子スレッドからの呼び出しのためにない真あります は「SystemExit例外を上げてキャッチされない場合は、このスレッドは黙っを終了します。」
:thread.exit()
としてどこsys.exit()
は明らかに振る舞います私は、プログラマーがsys.exit(msg)
にエラーメッセージを表示したいと思うと、これは単に呼び出された場所から独立して表示されるべきです。何故なの?私は現在、何らかの理由を見ません。少なくとも、sys.exit()
のドキュメントにメッセージがスレッドから出力されないというヒントがあるはずです。
あなたはどう思いますか?エラーメッセージがスレッドから隠蔽されるのはなぜですか?これは理にかなっていますか?
敬具、
月、フィリップGehrcke
あなたは私に良い助言をくれました;) Btw:ここであなたの知識を共有するのはとても素晴らしいことです。私はあなたが現在、純粋なエキスパートのPythonのものでこのプラットフォームを埋めるためにあなたの時間の多くを費やしていることを知っています!これはコミュニティが必要とするものですが、それはもちろん問題ではありません。非常に非常に大きなこれをありがとう! Jan-Philip –
@ Jan-Philip、あなたは大歓迎です。そして、あなたに感謝の言葉をいただき、ありがとうございます。 –