0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Python初心者】よく出る「エラー」と「例外」まとめ

Last updated at Posted at 2025-04-21

Pythonでプログラムを書いていると、「エラー」や「例外」によって処理が途中で止まってしまうことがあります。
この記事では、初心者がよく遭遇する 「エラー」と「例外」 をシンプルな説明とコード例で紹介します。
さらに、例外が発生したときにプログラムを止めずに処理を続ける方法(try-except文)もあわせて解説します。

このページで紹介するエラー一覧

エラー(実行前に発生)

  • SyntaxError:構文エラー
  • IndentationError:インデントエラー
  • NameError:名前(変数など)未定義エラー

例外(実行中に発生)

  • TypeError:型エラー
  • ValueError:値エラー
  • IndexError:インデックス範囲外エラー
  • KeyError:辞書のキーエラー
  • AttributeError:属性・メソッドエラー
  • ZeroDivisionError:ゼロ除算エラー
  • ImportError:モジュール読み込みエラー
  • ModuleNotFoundError:モジュール未発見エラー
  • KeyboardInterrupt:ユーザーによる中断エラー
  • IOError:入出力エラー(ファイル操作など)

エラーと例外の違い(ざっくり)

  • エラー:構文のミスなど、プログラムの実行前に発生する問題
  • 例外:実行中に発生するエラー。try-exceptで処理できる

エラー:実行前に発生する問題(構文ミスなど)

1. SyntaxError(構文エラー)

Pythonの文法に間違いがあるときに出ます。

if True
    print("Hello")  # コロンが抜けている

2. IndentationError(インデントエラー)

インデント(字下げ)が不正なときに出ます。

def greet():
print("こんにちは")  # インデントが必要

3. NameError(名前エラー)

定義していない変数や関数を使おうとしたときに出ます。

print(message)  # message が未定義

例外:実行中に発生するエラー(try-exceptで処理可能)

1. TypeError(型エラー)

型の違いによって演算や操作ができないときに出ます。

result = '100' + 100  # 文字列と数値の加算は不可

2. ValueError(値エラー)

値の型は正しいが、中身の値が不正なときに出ます。

num = int("abc")  # "abc"はintに変換できない

3. IndexError(インデックスエラー)

リストなどの要素番号が範囲外のときに出ます。

items = [1, 2, 3]
print(items[5])  # 存在しない位置

4. KeyError(キーエラー)

辞書に存在しないキーを指定したときに出ます。

d = {"apple": 1}
print(d["banana"])  # "banana" は存在しないキー

5. AttributeError(属性エラー)

オブジェクトに存在しない属性やメソッドを使ったときに出ます。

x = 100
x.append(1)  # int型にappendはない

6. ZeroDivisionError(ゼロ除算エラー)

0で割ろうとしたときに出ます。

print(10 / 0)

7. ImportError(モジュール読み込みエラー)

モジュール自体は存在するが、その中の属性や関数が見つからないときに出ます。

from math import not_a_function  # math モジュールには存在しない関数

8. ModuleNotFoundError(モジュール未発見エラー)

import 文で存在しないモジュールを読み込もうとしたときに出ます。
Python 3.6以降で導入されたエラーです。

import not_a_module  # 存在しないモジュール

ModuleNotFoundErrorImportError のサブクラスです。
except ImportError: で両方をまとめて処理できます。

9. KeyboardInterrupt(キーボード割り込み)

実行中に Ctrl + C などでユーザーが中断したときに出ます。

try:
    while True:
        pass  # 無限ループ中に Ctrl+C を押すと発生
except KeyboardInterrupt:
    print("手動で中断されました")

10. IOError(入出力エラー) ※現在は OSError に統合

ファイルの読み込み・書き込みなどの入出力で問題が起きたときに出ます。
以下のようなファイルが見つからないエラーは IOErrorFileNotFoundError として扱われます。

try:
    f = open("not_exist.txt")
except IOError:
    print("ファイルが見つかりません")

💡 Python 3.3以降では、IOErrorOSError に統合され、
FileNotFoundError のような具体的な例外に分かれています。

例外処理の基本形

ここまで紹介してきた「例外」は、プログラムの実行中に発生します。
例外が発生すると、プログラムはエラーを出して強制終了してしまいますが、
tryexcept を使うことで「エラーが起きても処理を止めずに続ける」ことができます。

基本的な書き方は以下のようになります:

try:
    value = int("abc")
except ValueError:
    print("整数に変換できませんでした")

このように、例外が起きそうな処理は try ブロックに入れておき、
発生した例外に対して適切な except 処理を書くことで、安全にプログラムを継続できます。

まとめ

  • エラーはプログラムの構文ミスなどで、実行前に検出される
  • 例外実行中に発生し、 try-except で処理できる
  • よく出る種類を知っておくことで、トラブル対応やデバッグが圧倒的に楽になる!
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?