エラー辞典

ArithmeticError

数値計算に関するエラーの「親分類」です。ZeroDivisionErrorやOverflowErrorは、実はこのArithmeticErrorの仲間(サブクラス)です。

原因

直接この名前のエラーに遭遇することは少なく、通常はZeroDivisionErrorなど、より具体的な子クラスのエラーとして発生します。

エラーになるコード例

try:
    result = 10 / 0
except ArithmeticError:
    print('計算エラーが発生しました')
ZeroDivisionError: division by zero (ArithmeticErrorとしてもキャッチできる)

修正版

try:
    result = 10 / 0
except ZeroDivisionError:
    print('ゼロで割ることはできません')

よくある間違い

  • エラーの継承関係(親子関係)を知らず、なぜexcept ArithmeticErrorでZeroDivisionErrorが捕まえられるのか混乱する
  • 具体的なエラー名が分かっているのに、あえて曖昧な親クラスでキャッチしてしまう

← エラー辞典に戻る