Pythonの例外処理(try-except)の基本と書き方を徹底解説!初心者でもわかるエラー対策入門
生徒
「Pythonを実行したら、急に英語のエラーがたくさん出て止まってしまいました。これは何が起きているんですか?」
先生
「それはPython(パイソン)が例外(れいがい)を検知した状態ですね。プログラムの途中で困ったことが起きた、という合図です。」
生徒
「エラーが出ると怖くて…回避する方法はあるんですか?」
先生
「ありますよ。Pythonのtry-except(トライ・エクセプト)という例外処理を使えば、エラーが起きても安全に動かせます。」
1. Pythonの例外処理とは何か?
Pythonの例外処理(れいがいしょり)とは、プログラムの実行中に予期しない問題が起きたときでも、処理を安全に続けるための仕組みです。パソコンに例えると、急に電源が落ちそうになったときに、自動でデータを保存するような保険の役割を持っています。
初心者のうちは「エラー=失敗」と感じがちですが、実際の開発ではエラーは当たり前に発生します。大切なのは、エラーが起きたときにどう対応するかです。Pythonではその対応方法として、例外処理が用意されています。
2. 例外(Exception)とエラーの違い
Pythonでは、問題が起きた状態を例外(Exception:エクセプション)と呼びます。エラーという言葉と混同しやすいですが、プログラムの世界では「対処できる問題」という意味合いが強いです。
例えば、存在しないファイルを開こうとしたり、数字で割り算をするときにゼロで割ってしまった場合などが例外です。これらは事前に予測できるため、例外処理で対応できます。
3. try-exceptの基本的な書き方
Pythonの例外処理は、try(トライ)とexcept(エクセプト)を使って書きます。tryの中には「エラーが起きそうな処理」を書き、exceptの中には「エラーが起きたときの対応」を書きます。
try:
x = int("abc")
print(x)
except:
print("数値に変換できませんでした。")
数値に変換できませんでした。
この例では、文字列を数値に変換しようとして失敗しています。本来ならプログラムは止まりますが、try-exceptを使うことで、代わりのメッセージを表示できます。
4. よく使われる代表的な例外の種類
Pythonには多くの例外が用意されていますが、初心者が最初に覚えるべきものは限られています。代表的なものとして、ZeroDivisionError(ゼロで割ったとき)やValueError(値が不正なとき)があります。
try:
result = 10 / 0
print(result)
except ZeroDivisionError:
print("0で割ることはできません。")
0で割ることはできません。
このように例外の種類を指定すると、特定の問題だけに反応する処理が書けます。
5. 複数のexceptを書く方法
一つの処理で、複数の例外が起きる可能性もあります。その場合は、exceptを複数書くことで、状況に応じた対応ができます。
try:
num = int(input("数字を入力してください: "))
print(10 / num)
except ValueError:
print("数字以外が入力されました。")
except ZeroDivisionError:
print("0を入力すると計算できません。")
ユーザー入力があるプログラムでは、例外処理があるだけで安心感が大きく変わります。
6. elseとfinallyの役割
try-exceptには、else(エルス)やfinally(ファイナリー)を追加できます。elseは「例外が起きなかったとき」、finallyは「必ず最後に実行したい処理」を書く場所です。
try:
x = int("100")
except ValueError:
print("変換に失敗しました。")
else:
print("正常に変換できました。")
finally:
print("処理を終了します。")
正常に変換できました。
処理を終了します。
ファイルを閉じる処理など、必ず実行したい処理はfinallyに書くのが一般的です。
7. 例外処理を使うときの考え方
例外処理は、エラーを隠すための仕組みではありません。問題が起きる可能性を想定し、ユーザーや自分自身が困らないようにするための仕組みです。
初心者のうちは「とりあえずexceptを書く」形になりがちですが、どんな例外が起きるのかを考えながら書くことで、読みやすく安全なPythonコードになります。
8. Python初心者が例外処理を学ぶ意味
Pythonの例外処理は、プログラムを安定して動かすための基礎中の基礎です。try-exceptを理解すると、エラー表示に怯えず、落ち着いて原因を考えられるようになります。
プログラミング未経験者にとっても、例外処理は「失敗しても大丈夫な仕組み」と考えると理解しやすくなります。Pythonの例外処理を身につけることで、安心してコードを書けるようになるでしょう。