カテゴリ: Python 更新日: 2026/03/09

Pythonのfinally文の使い方を完全ガイド!例外発生時にも必ず実行される処理を初心者向けに解説

Pythonのfinally文の使い方!例外発生時にも実行する処理
Pythonのfinally文の使い方!例外発生時にも実行する処理

先生と生徒の会話形式で理解しよう

生徒

「Python(パイソン)でエラーが起きたときでも、必ず動く処理って書けるんですか?」

先生

「できます。Pythonの例外処理(レイガイショリ)で使うfinally文(ファイナリーぶん)を使うと、エラーが起きても必ず実行される処理を書けます。」

生徒

「エラーが出ても必ずですか?どんなときに使うんですか?」

先生

「ファイルを閉じる処理や、後片付けのような場面でよく使います。では、基礎から順番に見ていきましょう。」

1. Pythonの例外処理とは?

1. Pythonの例外処理とは?
1. Pythonの例外処理とは?

Python(パイソン)の例外処理(レイガイショリ)とは、プログラムの実行中に問題(エラー)が起きたときに、プログラムが突然止まらないようにする仕組みです。たとえば、割り算で0で割ろうとしたり、存在しないファイルを開こうとしたときにエラーが発生します。

パソコン初心者の方は、家電のブレーカーを想像してください。何か問題が起きても安全に処理するための保険のような役割が、例外処理です。

2. try文とexcept文の基本構造

2. try文とexcept文の基本構造
2. try文とexcept文の基本構造

Pythonの例外処理では、まずtry文(トライぶん)とexcept文(エクセプトぶん)を使います。tryにはエラーが起きそうな処理を書き、exceptにはエラーが起きたときの対応を書きます。


try:
    x = 10 / 0
    print(x)
except:
    print("エラーが発生しました")

エラーが発生しました

この例では、0で割る処理があるためエラーが発生し、exceptの中が実行されます。

3. finally文とは?必ず実行される処理

3. finally文とは?必ず実行される処理
3. finally文とは?必ず実行される処理

finally文(ファイナリーぶん)は、例外が発生しても、しなくても、必ず最後に実行される処理を書くための構文です。

現実の例でいうと、料理の後に必ず皿を洗うようなものです。料理が成功しても失敗しても、後片付けは必ず行いますよね。それと同じ役割をするのがfinally文です。

4. finally文の基本的な書き方

4. finally文の基本的な書き方
4. finally文の基本的な書き方

finally文は、tryexceptの最後に書きます。構造はとてもシンプルです。


try:
    print("処理を開始します")
    num = int("abc")
except:
    print("エラーが起きました")
finally:
    print("この処理は必ず実行されます")

処理を開始します
エラーが起きました
この処理は必ず実行されます

このように、文字を数値に変換できずエラーが発生しても、finallyの中は必ず実行されます。

5. エラーが起きない場合でもfinallyは動く

5. エラーが起きない場合でもfinallyは動く
5. エラーが起きない場合でもfinallyは動く

finally文は、エラーが起きない場合でも必ず実行されます。ここが初心者の方にとって重要なポイントです。


try:
    print("計算をします")
    result = 10 + 5
    print(result)
except:
    print("エラーが発生しました")
finally:
    print("処理を終了します")

計算をします
15
処理を終了します

正常に計算できた場合でも、最後にfinallyの処理が実行されていることが分かります。

6. ファイル操作とfinally文の相性

6. ファイル操作とfinally文の相性
6. ファイル操作とfinally文の相性

finally文は、ファイル操作と非常に相性が良いです。ファイルは使い終わったら必ず閉じる必要があります。


try:
    file = open("sample.txt", "w")
    file.write("Pythonのfinally文の練習")
except:
    print("ファイル操作でエラーが発生しました")
finally:
    file.close()
    print("ファイルを閉じました")

ファイルを閉じました

このように書くことで、途中でエラーが起きてもファイルを確実に閉じることができます。

7. finally文がない場合に起きやすい問題

7. finally文がない場合に起きやすい問題
7. finally文がない場合に起きやすい問題

finally文を使わないと、エラー発生時に後処理が実行されず、問題が残ることがあります。たとえば、ファイルが開きっぱなしになったり、メモリを無駄に使い続ける原因になります。

初心者のうちは気づきにくいですが、小さなミスが積み重なると、大きなトラブルにつながるため、finally文を使う習慣はとても大切です。

8. finally文を使うときの注意点

8. finally文を使うときの注意点
8. finally文を使うときの注意点

finally文の中では、できるだけシンプルな処理を書くようにしましょう。なぜなら、ここでさらにエラーが起きると、原因の特定が難しくなるからです。

「必ず実行したい処理だけを書く」という意識を持つことで、読みやすく安全なPythonプログラムが書けるようになります。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
カテゴリの一覧へ
新着記事
New1
Python
PythonでREST APIを作る方法!初心者向けFastAPI入門|Python API開発の基本
New2
PHP
PHPのコード品質向上ツール完全解説!PHPStan(ピーエイチピースタン)とPHPCS(ピーエイチピーシーエス)で初心者でも安全にデバッグしよう
New3
Python
Pythonでデータベースのログを記録・監視する方法を完全解説!初心者向けデータベースログ管理入門
New4
PHP
PHPのログファイルを活用したエラートラッキング完全ガイド|初心者でもわかるPHPデバッグ入門
人気記事
No.1
Java&Spring記事人気No1
PHP
PHP のフォームデータの受け取り($_POST, $_GET)を完全解説!初心者向けガイド
No.2
Java&Spring記事人気No2
Python
Pythonのインストール&環境構築!Windows・Mac・Linuxでの手順を初心者向けに解説
No.3
Java&Spring記事人気No3
Python
PythonでExcelファイル(.xlsx)を操作する方法を徹底解説!初心者でもできるopenpyxl・pandasの使い方
No.4
Java&Spring記事人気No4
Python
Pythonのコンストラクタ(__init__)の使い方!初心者でもわかるオブジェクトの初期化
No.5
Java&Spring記事人気No5
Python
Pythonでテキストファイルを1行ずつ読み込む方法(readline() / readlines())
No.6
Java&Spring記事人気No6
PHP
PHPの特殊文字とエスケープ処理を完全ガイド!初心者向けにhtmlspecialcharsとhtmlentitiesをやさしく解説
No.7
Java&Spring記事人気No7
Python
Pythonでデータベースの接続プールを使う方法を徹底解説!初心者向けPythonデータベース接続プール入門
No.8
Java&Spring記事人気No8
Python
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い