Python 例外処理

Note: tryブロックは、エラーをテストするためのコードブロックです。

exceptブロックはエラーを処理します。

elseブロックは、エラーが発生しない場合にコードを実行します。

finallyブロックは、tryブロックとexceptブロックの結果に関係なく、常にコードを実行します。

例外処理

エラーが発生すると、通常、Pythonは停止しエラーメッセージを生成します。

これらの例外はtry文を使用して処理できます:

try:
  print(x)
except:
  print("例外が発生しました")

tryブロックがエラーを発生させるため、exceptブロックが実行されます。

tryブロックがない場合、プログラムはクラッシュしエラーを発生させます:

print(x)

多くの例外を定義でき、特定の種類のエラーに対して特別なコードブロックを実行できます:

try:
  print(x)
except NameError:
  print("変数xは定義されていません")
except:
  print("何かが間違っています")

Else

elseキーワードを使用して、エラーが発生しなかった場合に実行するコードブロックを定義できます:

try:
  print("こんにちは")
except:
  print("何かが間違っています")
else:
  print("問題は発生しませんでした")

Finally

finallyブロックは指定された場合、tryブロックがエラーを発生させたかどうかに関係なく、常に実行されます。

try:
  print(x)
except:
  print("何かが間違っています")
finally:
  print("try exceptは終了しました")

これはオブジェクトを閉じ、リソースをクリーンアップするのに便利です:

try:
  f = open("demofile.txt")
  try:
    f.write("Lorem Ipsum")
  except:
    print("ファイルへの書き込み中にエラーが発生しました")
  finally:
    f.close()
except:
  print("ファイルのオープン中にエラーが発生しました")

このプログラムはファイルオブジェクトを開いたままにしません。

例外を発生させる

Python開発者として、条件が発生した場合に例外をスローすることができます。

例外をスローするには、raiseキーワードを使用します。

x = -1

if x < 0:
  raise Exception("マイナスの数は許可されていません")

raiseキーワードは例外をスローするために使用されます。

どのようなエラーをスローするか、およびユーザーに表示するテキストを定義できます。

x = "hello"

if not type(x) is int:
  raise TypeError("整数のみが許可されています")