Pythonで例外の種類ごとに処理を分ける方法を完全解説!初心者でもわかる複数except入門
生徒
「Pythonのエラーって、同じじゃなくて種類があるんですよね?」
先生
「そうですね。Pythonではエラーの内容ごとに、例外の種類が決まっています。」
生徒
「種類ごとに、違うメッセージを出したりできますか?」
先生
「できます。複数のexceptを使うと、例外の種類ごとに処理を分けられます。」
1. Pythonの例外処理とは何か
Pythonの例外処理とは、プログラムの実行中に起きた問題を検知し、止まらずに対応するための仕組みです。例外とは、想定外の操作や入力によって発生するエラーのことです。
たとえば、数字として扱えない文字を数値に変換しようとした場合、Pythonは処理を続けられず、例外を発生させます。
2. tryとexceptの基本的な役割
例外処理では、まずtryの中に「エラーが起きるかもしれない処理」を書きます。そして、エラーが起きた場合に実行したい処理をexceptに書きます。
これは「失敗するかもしれない作業を見守り、失敗したら対応する」イメージです。
try:
number = int("abc")
except ValueError:
print("数値に変換できませんでした")
3. 例外には種類がある
Pythonの例外には多くの種類があります。たとえば、数値変換の失敗はValueError、0で割った場合はZeroDivisionErrorなどです。
これは、転んだ理由が「つまずいた」「滑った」など違うのと同じで、原因ごとに名前が付いています。
4. 複数のexceptで処理を分ける書き方
Pythonでは、exceptを複数書くことで、例外の種類ごとに処理を分けることができます。発生した例外に合ったexceptだけが実行されます。
これにより、エラー内容に応じた分かりやすい対応ができます。
try:
result = 10 / int("zero")
except ValueError:
print("数字を入力してください")
except ZeroDivisionError:
print("0で割ることはできません")
5. 複数exceptの動き方を理解しよう
複数のexceptがある場合、Pythonは上から順番に確認し、最初に一致した例外処理を実行します。それ以外のexceptは実行されません。
これは、受付で条件に合った窓口に案内されるような仕組みです。
数字を入力してください
6. 別のパターンで見る複数except
ファイル名の入力や文字列の操作などでも、複数の例外が起きることがあります。それぞれに合ったメッセージを用意すると、利用する人にやさしいプログラムになります。
try:
text = None
print(text.upper())
except AttributeError:
print("文字列が設定されていません")
except TypeError:
print("正しくない型です")
7. 例外を分けるメリットと考え方
例外を種類ごとに分けることで、何が原因で問題が起きたのかが分かりやすくなります。これは、トラブルの原因を正確に伝えるために重要です。
初心者のうちは、よく起きる例外だけを分けて書く意識を持つと、理解が深まります。
8. 初心者が意識したい例外処理の基本
例外処理は、プログラムを安全に動かすための保険のような存在です。複数のexceptを使うことで、より丁寧な対応ができるようになります。
エラーを恐れず、どんな場合にどう動かしたいかを考えることが、Python学習の大切なポイントです。