カテゴリ: Python 更新日: 2026/02/20

Pythonの例外処理とリソース管理を完全解説!初心者でもわかる安全な書き方

Pythonの例外処理とリソース管理をまとめて行うベストプラクティス
Pythonの例外処理とリソース管理をまとめて行うベストプラクティス

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

生徒

「Pythonでエラーが出たときに、ファイルが開きっぱなしになるって聞いたんですが、本当ですか?」

先生

「本当です。エラーへの対応と、ファイルやデータの後片付けを正しく書かないと、思わぬ問題が起きます。」

生徒

「エラー対応と後片付けを、まとめて安全に書く方法はありますか?」

先生

「Pythonには、それを簡単に実現する書き方があります。順番に見ていきましょう。」

1. 例外処理とリソース管理とは?

1. 例外処理とリソース管理とは?
1. 例外処理とリソース管理とは?

Pythonの例外処理とは、プログラム実行中に起こるエラーを検知し、安全に処理を続ける仕組みです。 一方、リソース管理とは、ファイルやネットワーク接続など、使い終わったら必ず閉じる必要があるものを正しく片付けることを指します。 例外処理とリソース管理はセットで考えることがとても重要です。

2. なぜリソース管理が重要なのか

2. なぜリソース管理が重要なのか
2. なぜリソース管理が重要なのか

リソースを開いたままにすると、パソコンの中で無駄な場所を使い続けてしまいます。 これは、水道の蛇口を開けっぱなしにするのと同じです。 Pythonではエラーが起きると、その後の処理が止まるため、後片付けがされない危険があります。

3. tryとexceptでエラーを受け止める

3. tryとexceptでエラーを受け止める
3. tryとexceptでエラーを受け止める

Pythonの例外処理の基本は、tryexceptです。 tryの中に、失敗するかもしれない処理を書きます。 エラーが起きると、exceptに処理が移ります。


try:
    number = int("abc")
except ValueError:
    print("数字に変換できませんでした。")

数字に変換できませんでした。

4. finallyで必ず後片付けを行う

4. finallyで必ず後片付けを行う
4. finallyで必ず後片付けを行う

finallyは、エラーが起きても起きなくても、必ず実行される処理です。 ここに後片付けを書くことで、リソース管理を安全に行えます。


try:
    file = open("sample.txt", "r")
    text = file.read()
except FileNotFoundError:
    print("ファイルが見つかりません。")
finally:
    print("ファイルを閉じます。")

5. with文を使ったベストプラクティス

5. with文を使ったベストプラクティス
5. with文を使ったベストプラクティス

Pythonでは、with文を使うことで、例外処理とリソース管理をまとめて書けます。 with文は、処理が終わると自動的に後片付けをしてくれる便利な書き方です。


with open("sample.txt", "r") as file:
    text = file.read()
    print(text)

6. with文と例外処理を組み合わせる

6. with文と例外処理を組み合わせる
6. with文と例外処理を組み合わせる

with文の中でも、tryexceptを使えます。 これにより、読み込みエラーと後片付けを同時に安全に行えます。


try:
    with open("data.txt", "r") as file:
        print(file.read())
except FileNotFoundError:
    print("指定したファイルが存在しません。")

7. よくある失敗例と改善ポイント

7. よくある失敗例と改善ポイント
7. よくある失敗例と改善ポイント

初心者がよくやってしまうのが、ファイルを開いて閉じる処理を書き忘れることです。 この問題は、with文を使うことでほぼ防げます。 エラー処理とリソース管理は、別々ではなく一緒に考えることが大切です。

8. 安全で読みやすいコードを書く意識

8. 安全で読みやすいコードを書く意識
8. 安全で読みやすいコードを書く意識

Pythonの例外処理とリソース管理のベストプラクティスは、「安全」「簡単」「読みやすい」を意識することです。 特に初心者のうちは、短くて分かりやすい書き方を選ぶことで、ミスを減らせます。 その点で、with文は非常に優れた方法です。

カテゴリの一覧へ
新着記事
New1
Flask
FlaskでAjaxリクエストを処理する方法!JSONとの連携を初心者向けにやさしく解説
New2
Flask
FlaskアプリのテストをGitHub Actionsで自動化する方法まとめ!初心者向け解説
New3
Python
Pythonの例外処理におけるコーディング規約を完全解説!初心者でもわかるPEP8ガイドライン
New4
Flask
FlaskでHello Worldを表示するには?最初の1行を実行してみよう
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.2
Java&Spring記事人気No2
Flask
FlaskとAWS S3を連携!静的ファイルを効率よく配信する初心者向け完全ガイド
No.3
Java&Spring記事人気No3
Python
Pythonで例外の種類ごとに処理を分ける方法を完全解説!初心者でもわかる複数except入門
No.4
Java&Spring記事人気No4
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.5
Java&Spring記事人気No5
Flask
Flask-Loginでユーザー認証を完全ガイド!初心者でもわかるログイン処理の作り方
No.6
Java&Spring記事人気No6
Python
Pythonでtry-except-else構文を使うケースとメリットを完全解説!初心者でもわかる例外処理入門
No.7
Java&Spring記事人気No7
Python
Pythonの関数を引数に渡す方法を初心者向けにやさしく解説!高階関数の使い方も完全ガイド
No.8
Java&Spring記事人気No8
Flask
FlaskでAWS RDSに接続する方法を徹底解説!MySQL/PostgreSQL設定ガイド