Day 50複数の例外を処理する
Pythonコード
1def divide_numbers(a, b):2 try:3 result = a / b4 print('結果:', result)5 except ZeroDivisionError:6 print('ゼロ除算はできません。別の数値を入れてください。')7 except TypeError:8 print('数値以外の入力はできません。数値を入れてください。')9 except Exception as e:10 print('予期せぬエラー:', str(e))11 12# テスト13divide_numbers(10, 2)14divide_numbers(10, 0)15divide_numbers('a', 2)
解説
- 行1〜3: このコードでは、2つの数値を割る関数 `divide_numbers` を定義します。try ブロック内で割り算を実行し、結果を出力します。組み込み関数 `print()` は、指定された値を画面に表示するために使用されます。
- 行4〜5: `except ZeroDivisionError` は、ゼロ除算が発生したときに実行されます。ゼロ除算は数学的に定義されていないため、エラーになります。
- 行6〜7: `except TypeError` は、数値以外の入力がされたときに実行されます。数値以外の入力は、割り算の演算に使用できません。
- 行8〜10: `except Exception as e` は、予期せぬエラーが発生したときに実行されます。エラーの内容を出力します。組み込み関数 `str()` は、オブジェクトを文字列に変換するために使用されます。
- 行12〜15: 関数をテストするために、異なる入力値で関数を呼び出します。
次に試してみよう
- ゼロ除算以外のエラーも処理できるように、別の例外ハンドラーを追加してみましょう。
- ユーザーから数値の入力を求めるプログラムを作成し、入力ミスを try/except で処理してみましょう。
- リストの中の数値同士の割り算を実行するプログラムを作成してみましょう。