Python試してみてください
このtry
ブロックを使用すると、コードのブロックでエラーをテストできます。
except
ブロックを使用すると、エラーを処理できます。
このelse
ブロックを使用すると、エラーがないときにコードを実行できます。
このfinally
ブロックを使用すると、try-およびexceptブロックの結果に関係なく、コードを実行できます。
例外処理
エラーが発生した場合、または例外が発生した場合、Pythonは通常停止し、エラーメッセージを生成します。
try
これらの例外は、次のステートメントを使用して処理できます。
例
定義されていないため、try
ブロックは例外を生成します。x
try:
print(x)
except:
print("An exception occurred")
tryブロックはエラーを発生させるため、exceptブロックが実行されます。
tryブロックがないと、プログラムがクラッシュしてエラーが発生します。
例
x
定義されていないため、このステートメントはエラーを発生させます。
print(x)
多くの例外
特別な種類のエラーに対して特別なコードブロックを実行する場合など、必要な数の例外ブロックを定義できます。
例
tryブロックでaが発生した場合はメッセージを出力しNameError
、他のエラーでは別のメッセージを出力します。
try:
print(x)
except NameError:
print("Variable x
is not defined")
except:
print("Something else went
wrong")
それ以外
キーワードを使用して、else
エラーが発生しなかった場合に実行されるコードのブロックを定義できます。
例
この例では、try
ブロックはエラーを生成しません。
try:
print("Hello")
except:
print("Something went
wrong")
else:
print("Nothing went wrong")
ついに
このfinally
ブロックは、指定されている場合、tryブロックでエラーが発生したかどうかに関係なく実行されます。
例
try:
print(x)
except:
print("Something went
wrong")
finally:
print("The 'try except' is finished")
これは、オブジェクトを閉じてリソースをクリーンアップするのに役立ちます。
例
書き込み不可能なファイルを開いて書き込んでみてください。
try:
f = open("demofile.txt")
try:
f.write("Lorum Ipsum")
except:
print("Something went wrong when writing to the file")
finally:
f.close()
except:
print("Something went wrong when opening the
file")
プログラムは、ファイルオブジェクトを開いたままにせずに続行できます。
例外を発生させる
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")