【Python基礎】finallyとelseによる補足処理の使い方

finally と else による後片付け

try-exceptelsefinally を加えると、成功・失敗・完了それぞれのタイミングで処理を定義できます。

1. else:エラーがなかった時だけ実行

def divide(a, b):
    try:
        result = a / b
    except ZeroDivisionError:
        print("エラー:0で割れません")
    else:
        print(f"成功:{a} ÷ {b} = {result}")   # エラーなしの時だけ実行

divide(10, 2)
divide(10, 0)
▶ 出力結果

成功:10 ÷ 2 = 5.0
エラー:0で割れません

2. finally:必ず実行される後片付け

def read_file(path):
    try:
        f = open(path, "r", encoding="utf-8")
        content = f.read()
        print(f"読み込み成功:{len(content)}文字")
    except FileNotFoundError:
        print(f"エラー:{path} が見つかりません")
        content = ""
    finally:
        print("ファイル操作を終了します")  # 成功でも失敗でも実行
    return content

read_file("existing.txt")
read_file("missing.txt")
▶ 出力結果

読み込み成功:XX文字
ファイル操作を終了します
エラー:missing.txt が見つかりません
ファイル操作を終了します
< 前の記事よくあるエラー(例外)の種類
次の記事 >例外を発生させる(raise)

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール