エラー辞典

AssertionError

assert文で指定した条件がFalseだったときに発生するエラーです。

原因

assert 条件式 という書き方で「本来ここはTrueのはず」という前提をチェックしており、その前提が崩れていることが原因です。

エラーになるコード例

def divide(a, b):
    assert b != 0, 'bは0であってはいけません'
    return a / b

divide(10, 0)
AssertionError: bは0であってはいけません

修正版

def divide(a, b):
    if b == 0:
        return None
    return a / b

print(divide(10, 0))

よくある間違い

  • 本番のバリデーション処理としてassertを使ってしまう(assertはデバッグ・前提確認用が本来の用途)
  • エラーメッセージを付けず、何が原因か分かりにくいassert文を書いてしまう

← エラー辞典に戻る