カテゴリ: Python 更新日: 2025/12/30

Pythonの例外処理(try-except)の基本と応用!エラーハンドリングをマスターしよう

Pythonの例外処理(try-except)の基本と応用!エラーハンドリングをマスターしよう
Pythonの例外処理(try-except)の基本と応用!エラーハンドリングをマスターしよう

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

生徒

「Pythonでエラーが出たときに、プログラムが止まらないようにする方法ってありますか?」

先生

「はい、Pythonではtry-exceptという構文を使って、エラーが起きてもプログラムを止めずに処理を続けることができます。」

生徒

「try-exceptって、どうやって書くんですか?初心者でも使えますか?」

先生

「もちろんです!とても簡単なので、まずは基本の使い方から見ていきましょう。」

1. Pythonの例外処理とは?

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

Python(パイソン)でプログラムを実行していると、思わぬ「エラー(間違い)」が起こることがあります。たとえば、存在しないファイルを開こうとしたり、数字ではない文字を計算しようとしたときです。

こうしたエラーが起きたときに、プログラムが途中で止まってしまうと困りますよね。そこで登場するのが「例外処理(れいがいしょり)」です。Pythonでは、tryexceptを使ってエラーを処理し、プログラムの続きを安全に実行することができます。

2. try-exceptの基本的な使い方

2. try-exceptの基本的な使い方
2. try-exceptの基本的な使い方

それでは、try-except構文(こうぶん)の基本を見てみましょう。構文とは、プログラムの文法のことです。以下は簡単な例です。


try:
    number = int(input("数字を入力してください: "))
    print("あなたが入力した数字は", number)
except:
    print("エラーが発生しました。数字を入力してください。")

このコードでは、ユーザーが入力した値を数字(整数)に変換しようとします。しかし、もし文字や記号など数字以外を入力するとエラーになります。その場合でも、exceptブロックが実行されて、エラーメッセージが表示されるだけで、プログラムは止まりません。

3. よくあるエラーを特定して処理する

3. よくあるエラーを特定して処理する
3. よくあるエラーを特定して処理する

exceptのあとに何も書かない場合、すべてのエラーをまとめて処理します。でも、エラーの種類によって、違う対応をしたいときもあります。

その場合は、エラーの種類(例外クラス)を指定します。例えば、ValueErrorは「値のエラー」、ZeroDivisionErrorは「0で割ったときのエラー」です。


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

4. finallyを使って最後に必ず実行する処理を書く

4. finallyを使って最後に必ず実行する処理を書く
4. finallyを使って最後に必ず実行する処理を書く

try-exceptには、finallyという構文もあります。これは、エラーがあってもなくても、最後に必ず実行される処理を指定できます。

たとえば、ファイルを開いて処理をしたあと、必ずファイルを閉じたいときなどに使います。


try:
    f = open("example.txt", "r")
    content = f.read()
    print(content)
except FileNotFoundError:
    print("ファイルが見つかりません。")
finally:
    print("処理が終了しました。")

5. elseを使ってエラーがなかったときだけ実行する

5. elseを使ってエラーがなかったときだけ実行する
5. elseを使ってエラーがなかったときだけ実行する

tryの中の処理がエラーなく成功したときだけ、elseを使って別の処理を実行することもできます。


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

このようにelseは「エラーが起きなかったとき限定で実行する処理」を書く場所です。

6. 複数のexceptを組み合わせて使う

6. 複数のexceptを組み合わせて使う
6. 複数のexceptを組み合わせて使う

Pythonでは、exceptをいくつでも書くことができます。これにより、いろいろなエラーに合わせて違うメッセージや処理を用意できます。


try:
    x = int(input("数値を入力してください: "))
    y = 10 / x
except ValueError:
    print("無効な数値が入力されました。")
except ZeroDivisionError:
    print("0では割り算できません。")
except Exception as e:
    print("予期しないエラーが発生しました:", e)

Exception as eのように書くと、発生したエラーの内容を変数eに入れて表示できます。

7. エラー処理を使うとプログラムが強くなる

7. エラー処理を使うとプログラムが強くなる
7. エラー処理を使うとプログラムが強くなる

try-except構文を使うことで、エラーが起きてもプログラムが止まらず、ユーザーにわかりやすいメッセージを表示できるようになります。これは、ユーザーフレンドリー(使う人にやさしい)なアプリやツールを作るためにとても重要です。

また、処理を分けることで、バグ(プログラムの間違い)の発見もしやすくなります。プログラムの安全性や信頼性を上げるために、try-exceptはぜひ覚えておきましょう。

まとめ

まとめ
まとめ

Pythonの例外処理であるtry-except構文は、プログラムの実行中に発生するエラーを安全に処理し、処理を途中で止めないために欠かせない基本機能です。初心者がPythonを学習する過程では、入力ミスや計算ミス、ファイル操作の失敗など、さまざまなエラーに直面しますが、例外処理を正しく理解して使えるようになることで、プログラム全体の安定性と信頼性が大きく向上します。 tryブロックには「エラーが起きる可能性のある処理」をまとめて書き、exceptブロックでは「エラーが起きたときの対応」を記述します。この構造により、エラーが発生してもプログラムが強制終了せず、ユーザーにとって分かりやすいメッセージを表示できるようになります。特にValueErrorやZeroDivisionError、FileNotFoundErrorなど、Pythonで頻繁に発生する例外を個別に処理できる点は、実践的なプログラミングにおいて非常に重要です。 また、finallyを使えば、エラーの有無に関係なく必ず実行したい処理を記述できるため、ファイルの後始末や終了メッセージの表示など、安全なプログラム設計が可能になります。else構文を活用することで、エラーが発生しなかった場合のみ処理を実行でき、コードの可読性や意図も明確になります。複数のexceptを組み合わせることで、想定されるエラーごとに適切な対処を用意できるため、ユーザー操作を前提としたアプリケーションやツール作成にも応用できます。 Pythonのエラーハンドリングを身につけることは、単にエラーを防ぐだけでなく、「想定外の入力や状況に耐えられる強いプログラム」を作る力を養うことにつながります。try-except構文は、Python初心者から中級者へとステップアップするための重要な知識であり、今後の学習や実務でも必ず役立つ基礎技術です。

サンプルプログラムで振り返る例外処理


def calculate_division():
    try:
        x = int(input("割られる数を入力してください: "))
        y = int(input("割る数を入力してください: "))
        result = x / y
    except ValueError:
        print("数値を正しく入力してください。")
    except ZeroDivisionError:
        print("0で割ることはできません。")
    else:
        print("計算結果は", result, "です。")
    finally:
        print("計算処理を終了します。")

このサンプルでは、try-except・else・finallyをすべて組み合わせて使用しています。入力値が正しい場合は計算結果が表示され、入力ミスや0による割り算が行われた場合でも、プログラムは止まらずに適切なメッセージを表示します。最後に必ず終了メッセージが表示されるため、処理の流れも分かりやすくなっています。このような構成は、実際のPythonプログラミングでもよく使われる実践的な例外処理の形です。

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

生徒

「try-exceptを使うと、エラーが出てもプログラムが止まらない理由がよく分かりました。」

先生

「それは大切なポイントですね。エラーが起きる前提で考えることが、良いプログラムを作る第一歩です。」

生徒

「ValueErrorやZeroDivisionErrorを分けて書けるのも便利だと思いました。ユーザーにも親切ですね。」

先生

「その通りです。例外ごとに対応を変えることで、より分かりやすく安全な処理ができます。」

生徒

「finallyやelseの使い方も理解できました。処理の流れが整理されて読みやすくなりますね。」

先生

「よく理解できています。try-exceptを使いこなせるようになると、Pythonプログラミングが一段と楽になりますよ。」

カテゴリの一覧へ
新着記事
New1
Flask
Flaskで非同期フォーム送信(Ajax POST)を実装する方法を解説!初心者でもわかるステップ解説
New2
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
New3
Python
PythonでMySQLに接続する方法!pymysqlの基本的な使い方
New4
Flask
FlaskのURLルールとは?ルーティングの基本と動的URLの作り方を解説
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.2
Java&Spring記事人気No2
Flask
Flaskでデータベースを使う基本!SQLAlchemyの導入方法をやさしく解説
No.3
Java&Spring記事人気No3
Python
Pythonでリストの要素を検索・取得する方法!index()やin演算子の活用法
No.4
Java&Spring記事人気No4
Python
Pythonプログラムの書き方を基礎から学ぼう!初心者が覚えるべき文法とは?
No.5
Java&Spring記事人気No5
Flask
Flaskアプリの環境変数をクラウドで安全に設定する方法!初心者のための完全ガイド
No.6
Java&Spring記事人気No6
Python
Pythonのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.7
Java&Spring記事人気No7
Python
Pythonで仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説
No.8
Java&Spring記事人気No8
Flask
Flaskでクラウド上のメッセージキュー(SQS/PubSub)を扱う完全ガイド!初心者向け解説