カテゴリ: Python 更新日: 2026/01/08

Pythonのtry-except-else-finallyの使い方!例外処理の細かい制御

Pythonのtry-except-else-finallyの使い方!例外処理の細かい制御
Pythonのtry-except-else-finallyの使い方!例外処理の細かい制御

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

生徒

「Pythonでプログラムを書いているときに、急にエラーが出て止まっちゃうんですが、どうしたらいいんですか?」

先生

「それは“例外”と呼ばれるエラーの一種ですね。Pythonではtry-exceptという構文を使って、エラーが出てもプログラムを止めずに処理を続けることができますよ。」

生徒

「try-exceptは聞いたことがあるかも!でも、elseとかfinallyってのも見たことがあって、混乱してます…」

先生

「では今回は、try-except-else-finallyを使った例外処理の方法について、わかりやすく説明していきましょう!」

-

1. 例外処理とは?初心者にもわかる基本の考え方

1. 例外処理とは?初心者にもわかる基本の考え方
1. 例外処理とは?初心者にもわかる基本の考え方

まず「例外処理(れいがいしょり)」という言葉から説明しましょう。例外とは、プログラムを実行している途中で“予想していなかったエラー”が発生することです。

たとえば、0で割り算をしてしまったり、存在しないファイルを開こうとしたときなどにエラーが起こります。こうしたエラーに対応するために使うのが、try-exceptという構文です。

2. try-except文の基本構文

2. try-except文の基本構文
2. try-except文の基本構文

まずは、try-exceptの基本的な使い方を見てみましょう。tryブロックの中に“エラーが起きそうな処理”を書いて、もしエラーが出たらexceptブロックの中の処理に移ります。


try:
    num = int(input("数字を入力してください: "))
    print("入力した数字:", num)
except ValueError:
    print("数字ではない文字が入力されました!")

この例では、input()で入力された文字が数字でなければ、ValueErrorというエラーが発生し、exceptの処理が実行されます。

3. elseで正常に終わったときの処理を追加

3. elseで正常に終わったときの処理を追加
3. elseで正常に終わったときの処理を追加

tryブロックの中でエラーが出なかったときにだけ、elseブロックが実行されます。

たとえば、ユーザーが正しく数字を入力した場合だけ、さらに別の処理をしたいときに使えます。


try:
    num = int(input("年齢を入力してください: "))
except ValueError:
    print("数字を入力してください。")
else:
    print("あなたは", num, "歳ですね!")

exceptが実行されるとelseはスキップされ、逆にtryが成功するとelseが動くという流れです。

4. finallyで必ず実行したい処理を書く

4. finallyで必ず実行したい処理を書く
4. finallyで必ず実行したい処理を書く

finallyブロックは、エラーがあってもなくても、必ず最後に実行されます。

たとえば「ファイルを閉じる」「接続を切る」など、必ずやっておきたい処理に使います。


try:
    f = open("sample.txt", "r")
    data = f.read()
except FileNotFoundError:
    print("ファイルが見つかりませんでした。")
else:
    print("ファイルの中身:")
    print(data)
finally:
    print("処理を終了します。")

このように、finallyはどんな場合でも実行されるため、「後片付け」をするのに適しています。

-

5. exceptを複数使って細かくエラーを分けよう

5. exceptを複数使って細かくエラーを分けよう
5. exceptを複数使って細かくエラーを分けよう

exceptは複数書くことができて、どの種類のエラーが起きたのかによって違う処理をすることができます。


try:
    a = int(input("割られる数を入力: "))
    b = int(input("割る数を入力: "))
    result = a / b
except ValueError:
    print("数字を入力してください。")
except ZeroDivisionError:
    print("0では割り算できません。")
else:
    print("計算結果:", result)

ValueErrorは「数字じゃない値」が入力されたとき、ZeroDivisionErrorは「0で割ったとき」に起こるエラーです。

6. 例外処理を使うときのポイントと注意点

6. 例外処理を使うときのポイントと注意点
6. 例外処理を使うときのポイントと注意点

例外処理はとても便利ですが、なんでもtry-exceptで囲めばいいというわけではありません。次のような点に注意しましょう。

  • 何のエラーを想定しているのか、exceptで具体的に書く(Exceptionだけだと広すぎる)
  • エラーが起きても、プログラムが動き続けてよいか考える
  • デバッグ(不具合調査)のときに、例外を握りつぶすと原因が分かりにくくなる

7. 例外処理のよくある使い道と初心者向けの活用例

7. 例外処理のよくある使い道と初心者向けの活用例
7. 例外処理のよくある使い道と初心者向けの活用例

プログラミング初心者が例外処理を使う場面としては、次のようなケースがあります。

  • ユーザーからの入力をチェック(数字かどうか)
  • ファイルの読み書き時に、ファイルが存在するか確認
  • ネットワーク通信やデータベース接続時に、接続エラーへの対応

これらは初心者でも遭遇しやすいエラーですので、try-exceptの使い方を早めに覚えておくと安心です。

8. try-except-finallyだけでも十分に実用的

8. try-except-finallyだけでも十分に実用的
8. try-except-finallyだけでも十分に実用的

elseはなくても問題ありません。try-except-finallyだけでも、多くのケースで十分に対応できます。

プログラムの処理の流れに応じて、必要なときだけelseを追加すればOKです。

まとめ

まとめ
まとめ

try-except-else-finallyで学んだ例外処理の全体像

今回の記事では、Pythonにおける例外処理の基本から応用までを、try、except、else、finallyという構文を通して学んできました。 プログラムは思い通りに動くこともあれば、入力ミスや環境の違い、ファイルの有無などによって予期しないエラーが発生することもあります。 そうした状況に対応するために、例外処理はPythonプログラミングにおいて欠かせない考え方です。 tryブロックではエラーが起こる可能性のある処理をまとめて書き、exceptでは発生したエラーの種類に応じた対応を行います。 さらにelseを使えば、エラーが起きなかった場合だけ実行したい処理を安全に分けることができ、 finallyを使えば、エラーの有無に関係なく必ず実行したい後処理を書くことができます。 これにより、プログラムの流れが整理され、読みやすく、保守しやすいコードを書くことが可能になります。

例外処理を使うことで得られる安心感と実用性

例外処理を正しく使うことで、プログラムは途中で突然止まることが少なくなり、利用者にとっても安心して使える仕組みになります。 特に初心者が作る入力処理やファイル操作では、想定外の値が入ることは日常的に起こります。 try-exceptを使ってエラーを想定した設計を行うことで、エラーメッセージを分かりやすく表示したり、 次の処理へ安全につなげたりすることができます。 また、exceptを複数使うことで、どの種類のエラーが発生したのかを細かく判断できるため、 より丁寧で信頼性の高いプログラムへと成長させることができます。 Pythonの例外処理は文法も比較的シンプルなので、早い段階で慣れておくことが大切です。

まとめとしてのサンプルプログラム


try:
    score = int(input("点数を入力してください: "))
except ValueError:
    print("数字で入力してください。")
else:
    if score >= 60:
        print("合格です。")
    else:
        print("不合格です。")
finally:
    print("判定処理を終了します。")

このサンプルでは、入力値が数字であるかを確認し、正しく入力された場合のみ合否判定を行っています。 そして最後にfinallyで必ず終了メッセージを表示することで、処理の区切りが明確になります。 このような構成は、実際の学習用プログラムや簡単な業務ツールでもそのまま活用できます。

先生と生徒の振り返り会話

生徒「try-exceptって、ただエラーを防ぐだけじゃなくて、プログラムを読みやすくする意味もあるんですね。」

先生「その通りです。エラーが起きたときの流れを整理できるので、後から見返したときにも理解しやすくなります。」

生徒「elseやfinallyも使い分けることで、処理の役割がはっきりしますね。」

先生「ええ。特にfinallyは、ファイル操作や終了処理などで必ず役に立ちます。」

生徒「これからはエラーが出ても怖がらずに、例外処理を書いて対処できそうです。」

先生「その意識が大切です。例外処理を理解すれば、Pythonプログラミングの幅が一気に広がりますよ。」

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

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

カテゴリの一覧へ
新着記事
New1
PHP
PHPのCookieセキュリティを完全ガイド!初心者でもわかるSecureとHttpOnlyの使い方
New2
PHP
PHPのCSRF対策を完全理解!トークンを使った安全なフォーム送信の仕組みを初心者向けに徹底解説
New3
PHP
PHPのSQLインジェクション対策を完全解説!初心者でも安全にデータベースを扱う方法
New4
PHP
PHPでカウントダウンタイマーを作る方法!初心者向けにやさしく解説
-
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonでテキストファイルを1行ずつ読み込む方法(readline() / readlines())
No.2
Java&Spring記事人気No2
PHP
初心者向けPHPでMySQLからデータを取得する方法(SELECT文)完全ガイド
No.3
Java&Spring記事人気No3
Python
Pythonのリストの重複を削除する方法を解説!初心者向けにsetとdict.fromkeysの使い方をやさしく説明
No.4
Java&Spring記事人気No4
Python
Pythonで経過時間を測る方法をやさしく解説!初心者向けtime.perf_counterとtime.sleepの使い方
No.5
Java&Spring記事人気No5
Python
PythonでExcelファイル(.xlsx)を操作する方法を徹底解説!初心者でもできるopenpyxl・pandasの使い方
No.6
Java&Spring記事人気No6
PHP
PHPのXSS対策を完全ガイド!初心者でもわかる安全なWebアプリの作り方
No.7
Java&Spring記事人気No7
PHP
PHPのOAuth認証をやさしく解説!Google・Facebookログインを初心者向けに実装しよう
No.8
Java&Spring記事人気No8
Python
Pythonでエラースタックトレースを表示・取得する方法を徹底解説!初心者向け例外処理入門
-
-