ArithmeticError
数値計算に関するエラーの「親分類」です。ZeroDivisionErrorやOverflowErrorは、実はこのArithmeticErrorの仲間(サブクラス)です。
原因
直接この名前のエラーに遭遇することは少なく、通常はZeroDivisionErrorなど、より具体的な子クラスのエラーとして発生します。
エラーになるコード例
try:
result = 10 / 0
except ArithmeticError:
print('計算エラーが発生しました')修正版
try:
result = 10 / 0
except ZeroDivisionError:
print('ゼロで割ることはできません')よくある間違い
- エラーの継承関係(親子関係)を知らず、なぜexcept ArithmeticErrorでZeroDivisionErrorが捕まえられるのか混乱する
- 具体的なエラー名が分かっているのに、あえて曖昧な親クラスでキャッチしてしまう