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例外が捕捉され、エラーメッセージが出力されます。例外の発生の有無に関わらず、適切なメッセージが出力されます。

bannerAds