Pythonで例外を処理する方法
Python では、例外をキャッチして処理するために try-except 文を使うことができます。
try-except構文の基本文法は以下のとおりです。
try:
# 可能会发生异常的代码块
except 异常类型1:
# 处理异常类型1的代码块
except 异常类型2:
# 处理异常类型2的代码块
else:
# 如果没有发生异常的代码块
finally:
# 不管是否发生异常都会执行的代码块
try ブロックで例外が起きる可能性のあるコードを記述すると、その例外が発生したときに対応する except ブロックへ処理が移動します。必要に応じて、さまざまな種類の例外を処理するために 1 つまたは複数の except ブロックを使用できます。
except文内では例外処理のロジックをif文などを使って記述することができ、エラーの出力やログ、リカバリー処理などを行うことができます。
例外が発生しなければ、else ブロックのコードが実行されます。
例外が発生しなかった場合でも finallyブロックのコードは実行されます。通常、finallyブロックではファイルのクローズやリソースの解放など、ある程度のクリーンアップ処理を行います。
try-exceptを使用して例外を捕捉して処理する方法の例を以下に示します。
try:
num1 = int(input("请输入一个整数:"))
num2 = int(input("请输入另一个整数:"))
result = num1 / num2
print("两个数相除的结果为:", result)
except ValueError:
print("输入的不是整数,请重新输入!")
except ZeroDivisionError:
print("除数不能为零,请重新输入!")
except Exception as e:
print("发生了未知异常:", e)
else:
print("没有发生异常。")
finally:
print("程序结束。")
上記の例では、ユーザーが入力した値が整数でなかった場合、ValueError例外が捕捉され、エラーメッセージが表示されます。同様に、ユーザーが入力した除数がゼロだった場合はZeroDivisionError例外が捕捉され、エラーメッセージが出力されます。その他予期せぬ例外が発生した場合には、Exception例外が捕捉され、エラーメッセージが出力されます。例外の発生の有無に関わらず、適切なメッセージが出力されます。