2012-05-04 6 views
1

エラーをトラップして、コードの実行を終了しようとしています。 以下のコードでは、私は「何かしますか?」エラーが発生した場合は、エラーメッセージ を出力して、後半を続行します。エラーが最初のセクション、エラー文の印刷やランニング 停止で発生した場合に何が起こっているPythonでエラーをトラップする

です。コードを最初のセクションを過ぎて実行しておきたいです。

答えて

6

Pythonの例外には、「後半の実行を継続する」組み込みの再開機能はありません。代わりに、「無条件で、常にこれを実行する」部分をtry-clauseからfinally節またはtry-statementの外側に移動するだけです。

P.S.裸のexcept節ですべての例外を飲み込むことは通常はお勧めできません。代わりに、通常のベストプラクティスは、処理方法を知っている例外だけをキャッチすることです。 「何かがない」失敗した場合

0

あなたがプログラムで決定することはできますか?もしそうなら、それは単に例外処理の仕組みに頼るよりも良い方法です。私はこのアンチパターンを.netコードで多く見ます。多くの言語での例外は、エラー処理だけでなく、例外的な状況を想定しています。

ちょうど私が行ったように思うかもしれない人のためのコメントを保存するための答えを維持します。

+6

"例外は例外的なものです"というルールは、他の言語に適用されるものです。 Pythonでは、制御フローに例外が日常的に使用されています。 –

+0

有効なポイントは、いくつかの研究の後、私はあなたの推論を参照してください。しかし、私には奇妙な気がする。 – dwerner

+3

http://c2.com/cgi/wiki?DontUseExceptionsForFlowControlには、なぜ他の言語のルールであるかの書き方があり、Pythonのコントロールフローに例外が使用される理由を指摘しています。 – dwerner