カテゴリ: Python 更新日: 2025/07/13

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です。

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

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

カテゴリの一覧へ
新着記事
PHPでセッションを使ってフォーム入力を保持する方法を解説!初心者向けステップバイステップ
Pythonで文字列をリストに変換する方法!split()とjoin()の使い方
Pythonの変数とは?定義方法とデータ型を初心者向けに解説
PHPでメールフォームを作る方法を徹底解説!初心者向けにmail関数とPHPMailerの使い方も紹介
人気記事
No.1
PHP&Python記事人気No1
Pythonでテキストファイルを1行ずつ読み込む方法(readline() / readlines())
No.2
PHP&Python記事人気No2
Pythonのリストを辞書に変換する方法(dict() / zip())
No.3
PHP&Python記事人気No3
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.4
PHP&Python記事人気No4
初心者向けにPHP でファイルを開く・読み込む・書き込む方法(fopen, fwrite, fread)を解説する記事
-