Python Try Except

try ブロックは、エラーを検出するためにコードブロックをテストします。

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

finally ブロックは、tryおよびexceptブロックの結果に関わらず、コードを実行します。

例外処理

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

使用できます try これらの例外を処理するステートメント:

インスタンス

tryブロックはxが未定義であるため、例外を生成します:

try:
  print(x)
except:
  print("An exception occurred")

インスタンスを実行

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

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

インスタンス

このステートメントはエラーを発生させます。なぜなら、xが未定義であるためです:

print(x)

インスタンスを実行

複数の例外

必要に応じて、任意の数のexceptionブロックを定義できます。例えば、特定のタイプのエラーに対して特別なコードブロックを実行したい場合:

インスタンス

tryブロックがエラーを発生させるとき、 NameError、それとも他のエラーの場合には、別のメッセージを表示します:

try:
  print(x)
except NameError:
  print("Variable x is not defined")
except:
  print("Something else went wrong")

インスタンスを実行

Else

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

インスタンス

この例では、try ブロックはエラーを生成しません:

try:
  print("Hello")
except:
  print("Something went wrong")
else:
  print("Nothing went wrong")

インスタンスを実行

Finally

指定された場合 finally ブロックが指定された場合、tryブロックがエラーを発生させようともしないで、finallyブロックが実行されます。

インスタンス

try:
  print(x)
except:
  print("Something went wrong")
finally:
  print("The 'try except' is finished")

インスタンスを実行

これはオブジェクトを閉じるためおよびリソースをクリーンアップするのに非常に役立ちます:

インスタンス

書き込み不可のファイルを開いて書き込むと試みます:

try:
  f = open("demofile.txt")
  f.write("Lorum Ipsum")
except:
  print("ファイルへの書き込み中に何かが間違った")
finally:
  f.close()

インスタンスを実行

プログラムは続行し、ファイルオブジェクトをオープンしません。

例外を発生させる

Python 開発者として、条件が発生した場合に例外を発生させることを選択できます。

例外を発生させるには、以下を使用してください: raise キーワード。

インスタンス

x が 0 未満の場合、例外を発生させてプログラムを終了させる:

x = -1
if x < 0:
  raise Exception("Sorry, no numbers below zero")

インスタンスを実行

raise キーワードを使用して例外を発生させます。

発生させる例外のタイプやユーザーに表示するテキストを定義できます。

インスタンス

x が整数でない場合、TypeError を発生させる:

x = "hello"
if not type(x) is int:
  raise TypeError("Only integers are allowed")

インスタンスを実行