Try/Except と If/Else: どちらのアプローチが好ましいですか?
Python で例外を扱う場合、開発者は多くの場合ジレンマに直面します。有効性をテストするか、アクションを試行して結果として生じる例外を処理するかどうか。この記事では、各アプローチのニュアンスを詳しく掘り下げ、意思決定に役立つガイダンスと例を提供します。
Try/Except: Exceptions の受け入れ
PEP 20 によると、エラー明示的に沈黙させない限り、黙って通過するべきではありません。これは、例外を処理するために try/Except ブロックを使用することが許容されることを示唆しているかもしれませんが、キャッチされる例外の性質に注意することが重要です。
Try/Except アプローチは、例外が本当に例外的な場合に有利です。まれな状況でのみ。これにより、不必要な検索が排除され、より迅速な実行が可能になります。さらに、これは Python の EAFP 哲学 (許可よりも許しを求める方が簡単です) とも一致しています。
スピードアップとコードのクリーン化
試行/除外が速度につながる可能性があります-例外的なケースがまれであり、その発生を確認するために追加のルックアップが必要な場合のアップ。たとえば、長いリスト内の特定のインデックスにある要素にアクセスしようとする場合、if/else.
を使用してインデックスが範囲内にあるかどうかを確認するよりも、try/excel を使用する方が高速です。さらに、try/excel はよりクリーンなコードを促進します。複数の条件ステートメントを 1 つのブロックに凝縮することで、可読性が向上し、行数が削減されます。
例:
次のコード スニペットを考えてみましょう:
# If/else approach
if len(my_list) >= 4:
x = my_list[3]
else:
x = 'NO_ABC'
# Try/except approach
try:
x = my_list[3]
except IndexError:
x = 'NO_ABC'
try/Except アプローチはより簡潔で、余分な検索を回避し、IndexError が発生した場合にのみ処理します。
結論
try/excel と if/else にはそれぞれメリットがありますが、速度が向上したり、コードがクリーンになったり、例外の可視性を犠牲にすることなく例外ケースを処理したりできる場合には、一般に try/excel の方が好まれます。例外を受け入れ、それを賢明に使用することで、Python 開発者は堅牢で読みやすく効率的なコードを作成できます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3