exceptとraiseの違い

exceptraiseは、Pythonにおいてエラーハンドリングと例外処理に関連するキーワードで、異なる目的と使い方を持っています。

  1. except:
    • exceptはエラーハンドリングに使用されます。tryブロック内で発生した例外を捕捉し、それに対する処理を実行するのに利用されます。
    • 一般的に、tryブロック内のコードで例外が発生する可能性がある場合、それをキャッチし、エラーメッセージを表示したり、代替のコードを実行したりするためにexceptブロックを使用します。
    • exceptブロックはtryブロックの後に配置され、例外の種類を指定することができます。例外の種類を指定しない場合、すべての例外を捕捉します。

例:

python
try: result = 10 / 0 except ZeroDivisionError: print("ゼロで割ることはできません")
  1. raise:
    • raiseはプログラム内で例外を意図的に発生させるために使用されます。つまり、エラーを手動で発生させることができます。
    • エラーの発生が特定の条件を満たす場合に、raiseを使用してカスタム例外を発生させたり、既存の例外を発生させたりすることができます。
    • 一般的に、エラーが特定の条件に遭遇したときに、エラーメッセージを設定し、raiseを使用してエラーをスローするために使われます。

例:

python
age = -1 if age < 0: raise ValueError("年齢は負の値ではありません") # カスタム例外を発生させる

要約すると、exceptは例外を処理し、プログラムを継続させるために使用されますが、raiseは意図的に例外を発生させてエラー状態を作成するために使用されます。どちらもエラーハンドリングに重要な役割を果たすが、異なるコンテキストで使用されます。