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("整数のみが許可されています")