Pythonでtry-except-else構文を使うケースとメリットを完全解説!初心者でもわかる例外処理入門
生徒
「Pythonの例外処理で、elseって書いてあるコードを見たんですが、何をするものなんですか?」
先生
「tryの中が問題なく終わったときだけ実行される処理を書く場所ですね。」
生徒
「if文のelseとは違うんですか?」
先生
「考え方は少し似ていますが、役割はまったく別です。順番に見ていきましょう。」
1. Pythonの例外処理の基本をおさらい
Pythonの例外処理とは、プログラムの実行中に起きる問題に対応するための仕組みです。例外とは、想定していない入力や操作によって発生するエラーのことを指します。
たとえば、文字を数字に変換しようとしたり、存在しないものを操作しようとすると、Pythonは例外を発生させます。例外処理を行わないと、プログラムはその場で止まってしまいます。
2. try-except構文の役割
例外処理では、まずtryの中に「失敗する可能性がある処理」を書きます。そして、問題が起きた場合の対応をexceptに書きます。
これは「うまくいくか分からない作業を試して、失敗したら別の対応をする」という考え方です。
try:
number = int("abc")
except ValueError:
print("数値に変換できませんでした")
3. try-except-else構文とは何か
try-except-else構文は、例外が発生しなかった場合にだけ実行したい処理をelseに書く構文です。tryの処理が最後まで問題なく終わったときに、elseの中が実行されます。
これは「問題が起きなかったとき専用の処理場所」を用意する仕組みだと考えると分かりやすいです。
try:
number = int("10")
except ValueError:
print("変換に失敗しました")
else:
print("変換に成功しました")
4. elseが実行されるタイミングを理解する
elseの中の処理は、tryの中で例外が一切発生しなかった場合のみ実行されます。exceptが動いた場合、elseは実行されません。
これは、作業が無事に終わったときだけ「完了しました」と表示するようなイメージです。
変換に成功しました
5. elseを使うメリット
try-except-elseを使う最大のメリットは、処理の意図が分かりやすくなる点です。例外が起きた場合と、問題なく進んだ場合の処理を明確に分けられます。
tryの中に成功時の処理まで書いてしまうと、どこまでが例外対策なのか分かりにくくなります。elseを使うことで、読みやすいコードになります。
6. elseを使わない場合との違い
elseを使わずに書くと、tryの中にすべての処理を入れてしまいがちです。その結果、例外処理と通常処理が混ざってしまいます。
初心者のうちは、成功したときにだけ行う処理はelseに分ける意識を持つと、コードの整理がしやすくなります。
try:
value = int("5")
except ValueError:
print("エラーが発生しました")
else:
print(value * 2)
7. try-except-elseが向いているケース
try-except-elseは、「成功したときだけ次の処理をしたい」場面で特に役立ちます。入力チェックや変換処理などが代表的な例です。
失敗した場合はそこで処理を終え、問題なかった場合だけ次へ進む、という流れをはっきり表現できます。
8. 初心者が覚えておきたい考え方
例外処理は、プログラムを止めないための安全装置です。try-except-elseを使うことで、「失敗した場合」と「成功した場合」を自然な形で書き分けられます。
エラーを避けることよりも、起きたときにどう動くかを考えることが、Pythonの例外処理ではとても大切です。