実装でのエラー処理

エラー処理、例外処理に関するTIPSページである.


  • ModuleNotFoundError: No module named '????'

    • 考えられる原因

      • importするモジュール名が間違っている

      • 使用端末にインストールされていないモジュールをimportしようとしている

    • 対処法

      • モジュール名が間違っていないか確認する

      • 個人PCなどの場合,該当モジュールをインストールする


  • NameError: name '???' is not defined

      • 考えられる原因

        • importすべきライブラリがインポートされていない

        • 定義されていない変数を参照した・変数名を間違えている

        • スコープが異なる変数を参照した

      • 対処法

        • import文を追加する

        • 変数名を確認する

        • 変数のスコープを確認する


  • AttributeError: module '????' has no attribute '????'

  • AttributeError: '????' object has no attribute '????'

    • 考えられる原因

      • 対象モジュールに存在しない関数を呼び出そうとした

      • 対象オブジェクトに存在しないメンバや関数を呼び出そうとした

        • 例: intオブジェクトxに対して,x.appendを呼び出した

    • 対処法

      • 関数名が間違っていないか確認する

      • 対象オブジェクトの型を正しくする

        • 上記例の場合,xをリストオブジェクトにしておく


  • IndexError: list index out of range

    • 考えられる原因

      • リストやタプルの存在しない添え字の位置の値を取得しようとした

          • lst = [0, 1, 2]

          • a = lst[10]

    • 対処法

      • 添え字の値が間違っていないか確認する