answer10_1_2.py
def input_age():
age = int(input("年齢を入力して下さい:"))
if age < 0:
raise ValueError("マイナスの年齢は無しです")
return age
try:
age = input_age()
except ValueError:
print("入力が不正です")
else:
print(f"あなたは来年{age+1}歳です!")
# 章末問題 10章【1】(2)解答例
#
# input_ageの中で、負の数が入力されたら、
# ValueErrorを送出します(3〜4行目)。
# input_ageの呼び出しがtry節にあるので(9行目)、
# その呼び出しの最中に4行目のコードでValueErrorが
# 発生すると、8行目からのtry文がそれを捕捉し、
# 10行目の例外ハンドラが動きます。
#
# なおValueErrorのコンストラクタに与えた文字列
# 「マイナスの年齢は無しです」は、例外の情報に
# セットされますが、10行目からのハンドラでそれは
# 使われていないため、この文字列はどこにも現れません。