私は条件の複雑なセットを持っています。私は条件が満たされればそれを終了したいと思います。例外をPythonアプローチに使用していますか?
そのためにはtry:/except:
構造を使用して適切なタイミングで終了したいと考えています。これはgoto
に似ています。 (while
からbreak
からraise
を使用して)複雑な例は次のようになります。
class Minor(Exception):
pass
class Major(Exception):
pass
age = 15
while True:
try:
if age > 18:
raise Major
else:
raise Minor
except Major:
print('major')
break
except Minor:
print('minor')
break
は例外のような使用ですニシキヘビ?言い換えれば、例外はTracebackだったと思われるものだけを捕まえることを意図していたのですか、それとも上記のような一般的な使い方ですか?
EDIT:以下のコメントは、この特定のコードを簡略化する方法を見ていないことを明確にしたいと思います。実際のコードはネストされたループと条件ではるかに複雑です。 私が関心を持っていた部分は、例外の使用を特に抑止する理由があるかどうかです。
いいえなぜ、あなたが 'except'ブロックに' raise'文を入れるか、関数呼び出しに入れるのではなく、 'except'ブロックにカプセル化するのは意味がありますか? –
これは私に非常にpythonicに見えません。 elifブロックが 'break'ステートメントで十分ではないのでしょうか? –
@PatrickHaugh:私は、あなたのコメントの中の「いいえ」は、「いいえ、これはいたずらではない」ということを意味します。あなたの質問については、私の本当のケースはもっと複雑で、一連のforsとwhilesがあり、そこから一連の基準が満たされたら脱出したいのです。例外を発生させることは私が想像した解決策でした。 – WoJ