Pythonにおける例外を投げる関数
例外は、条件を使って関数内に記述して投げると非常に便利です。
リストの長さが 3 以下の場合にのみリスト要素の合計を返し、それ以外の場合は独自の例外 ToBigLength を投げる関数 get_sum を作成しましょう。
def get_sum(lst):
if len(lst) <= 3:
return sum(lst)
else:
raise ToBigLength
次に、関数 get_sum にリストを渡し、結果をコンソールに出力してみましょう。
lst = [1, 2, 3, 4]
print(get_sum(lst)) # 6 を出力します
関数内では、複数のタイプの例外をキャッチするように設定することもできます。
もう一つ例外クラス ToSmallLength を作成しましょう。
class ToSmallLength(Exception):
pass
ここで、関数内に条件を記述します。リストの長さがゼロの場合は ToSmallLength を投げ、どの例外にも該当しない場合はリストの全要素の合計を返すようにします。
def get_sum(lst):
if len(lst) > 3:
raise ToBigLength
if len(lst) == 0:
raise ToSmallLength
else:
return sum(lst)
便利のために、関数のパラメータとして渡されるリスト、関数自体、そしてその呼び出しを try ブロックで囲むことができます。
作成した2つの例外のキャッチは except ブロックに配置します。
try:
lst = [1, 2, 3]
res = get_sum(lst)
print(res)
except ToBigLength:
print('error 1')
except ToSmallLength:
print('error 2')
数値をパラメータとして受け取る関数を作成してください。
関数内に、数値が負の場合とゼロに等しい場合にそれぞれ対応する例外を投げる条件を記述してください。
それ以外の場合は、数値に 3 を乗算するようにしてください。
try-except 構文を使って、作成した関数の動作を確認してください。
その際、作成した例外もキャッチしてください。