- 想定される例外の処理は実装する、また、想定外のエラーを隠ぺいしない
例外の種類
- システム例外
- システムが正常に動作する条件が整っていない状況で発生するため、発生時はシステム管理者による対処が必要となる。「必須の設定ファイルを開発者が置き忘れる」「外部サービスの呼び出しがエラーになる」など、通常起こりえない例外
- アプリケーション例外
- アプリケーションを普通に使っているだけでも論理的に起こり得るため、ユーザーへ発生原因を伝える必要がある。「認証キーの設定間違い」など
- プログラム例外
- プログラミング間違いによって発生するため、早期に発見できるように実装する必要がある。「変数名間違い」や「APIパラメーター間違い」など
# 以下の場合、どのような設計をするのが良いか?
def input_age():
while True:
user_input_age = input('年齢を入力してください:')
try:
return int(user_input_age)
except ValueError:
# 例外処理???
# 回答例
def input_age():
while True:
user_input_age = input('年齢を入力してください:')
try:
return int(user_input_age)
except ValueError:
print(f'数値を入力してください。\n{user_input_age!r}は数値に変換できません')