上級 › except: だけで書くと本当のバグまで隠れる › パターン1
except: だけで書くと本当のバグまで隠れる
except:とだけ書くとあらゆる例外を捕まえてしまい、想定していたエラーだけでなく、コードの本当のバグ(NameErrorなど)まで静かに隠してしまいます。
1 def average(nums): 2 try: 3 return _________ / len(nums) ^ 4 except: 5 return 0 6 7 print(average([1, 2, 3]))
出力: 0期待: 2.0 (エラーにはなりません)
空欄を埋めて実行を通す
totalという変数はどこにも定義されていません。本来ならNameErrorになるはずですが、exceptが何もかも捕まえてしまうため、バグに気づかないまま0が返り続けます。
次の問題