Pythonで複数の例外をまとめてキャッチする方法を完全解説!初心者でもわかる例外処理入門
生徒
「Pythonでエラーが起きたとき、種類ごとに書くのが大変そうです…」
先生
「確かに、例外が増えるとコードが長くなりがちですね。」
生徒
「似たようなエラーは、まとめて処理できないんですか?」
先生
「できますよ。Pythonでは複数の例外をまとめてキャッチできます。」
1. Pythonの例外処理をおさらい
Pythonの例外処理とは、プログラム実行中に起きた問題を安全に処理する仕組みです。例外とは、予期しない入力や操作によって発生するエラーのことを指します。
たとえば、数字に変換できない文字を数値として扱おうとした場合、Pythonは処理を続けられず例外を発生させます。
2. 例外が増えると起きやすい問題
プログラムが少しずつ大きくなると、起こりうるエラーの種類も増えていきます。そのたびにexceptを何個も書くと、見た目がごちゃごちゃしてしまいます。
これは、同じ内容の注意書きを何枚も貼るようなもので、管理が大変になります。
try:
value = int("abc")
except ValueError:
print("数値変換エラーです")
except TypeError:
print("型が正しくありません")
3. 複数の例外をまとめてキャッチする書き方
Pythonでは、exceptの後ろに丸かっこを使って、複数の例外をまとめて指定できます。これにより、同じ対応をするエラーを一か所に集約できます。
「どちらのエラーでも同じ対応でよい」という場面で、とても便利です。
try:
value = int("abc")
except (ValueError, TypeError):
print("入力内容に問題があります")
4. まとめてキャッチする仕組みを例えで理解する
複数例外のキャッチは、「雨の日も雪の日も傘をさす」と決めているようなものです。細かい違いはあっても、対処方法が同じなら一括で対応できます。
初心者のうちは、エラーごとの差を細かく分けすぎないことも大切です。
5. 実行結果を見てみよう
先ほどのコードを実行すると、ValueErrorが発生しますが、まとめてキャッチしているため、決めたメッセージが表示されます。
入力内容に問題があります
6. 別のパターンのサンプルコード
ファイル名や数値の扱いなど、複数のエラーが起きやすい処理でも、同じ考え方が使えます。
try:
result = 10 / int("zero")
except (ValueError, ZeroDivisionError):
print("計算できませんでした")
7. 例外をまとめるときの注意点
すべての例外を無理にまとめると、原因が分かりにくくなることがあります。本当に同じ対応で良い例外だけを一緒にするのがポイントです。
まずはシンプルにまとめ、必要になったら分ける考え方がおすすめです。
8. 初心者が身につけたい例外処理の考え方
例外処理は、プログラムを止めないための安全装置です。複数の例外をまとめてキャッチする方法を覚えることで、読みやすく、直しやすいコードになります。
エラーを怖がらず、「どう対応するか」を考えることが、Python学習の大切な一歩です。