カテゴリ: Python 更新日: 2026/02/11

Pythonのtracebackモジュール入門!初心者でもわかるエラースタックトレースの表示と取得方法

Pythonでエラースタックトレースを表示・取得する方法(tracebackモジュール)
Pythonでエラースタックトレースを表示・取得する方法(tracebackモジュール)

先生と生徒の会話形式で理解しよう

生徒

「Pythonでエラーが出たとき、英語がずらっと表示されて、どこが悪いのか分からなくなります…」

先生

「それはエラースタックトレースですね。原因をたどるための道順のようなものです。」

生徒

「その道順を、自分で表示したり保存したりできますか?」

先生

「できますよ。Pythonのtracebackモジュールを使えば、分かりやすく扱えます。」

1. エラースタックトレースとは何か?

1. エラースタックトレースとは何か?
1. エラースタックトレースとは何か?

エラースタックトレースとは、エラーが起きた場所までの道のりを文字で示した情報です。プログラムがどの順番で処理され、どこで失敗したのかを教えてくれます。

例えるなら、迷子になったときに「どの道を通って、どこで間違えたか」を示す地図のようなものです。Pythonでは、エラーが発生すると自動で表示されます。

2. 何もしなくても表示されるスタックトレース

2. 何もしなくても表示されるスタックトレース
2. 何もしなくても表示されるスタックトレース

まずは、Pythonが自動で表示するスタックトレースを見てみましょう。わざとエラーを起こします。


number = 10
result = number / 0
print(result)

ZeroDivisionError: division by zero

実際には、この前後にファイル名や行番号が表示されます。これがスタックトレースです。

3. tracebackモジュールとは?

3. tracebackモジュールとは?
3. tracebackモジュールとは?

tracebackモジュールは、エラースタックトレースを自分で表示したり、文字として取得したりするための標準機能です。

自動表示だけに頼らず、ログに残したい場合や、画面表示を調整したい場合に役立ちます。エラー内容をノートに書き写すイメージです。

4. tracebackでスタックトレースを表示する方法

4. tracebackでスタックトレースを表示する方法
4. tracebackでスタックトレースを表示する方法

例外処理と組み合わせて、スタックトレースを表示してみましょう。


import traceback

try:
    value = int("abc")
except Exception:
    traceback.print_exc()

ValueError: invalid literal for int() with base 10: 'abc'

print_excを使うことで、エラーの流れをそのまま表示できます。

5. スタックトレースを文字列として取得する

5. スタックトレースを文字列として取得する
5. スタックトレースを文字列として取得する

スタックトレースは、表示するだけでなく、文字列として取得できます。これはメモ帳に書いて保存する感覚です。


import traceback

try:
    numbers = [1, 2]
    print(numbers[5])
except Exception:
    error_text = traceback.format_exc()
    print(error_text)

IndexError: list index out of range

format_excは、スタックトレース全体を文字列として返します。

6. ファイルにスタックトレースを保存する考え方

6. ファイルにスタックトレースを保存する考え方
6. ファイルにスタックトレースを保存する考え方

取得したスタックトレースは、ファイルに保存することもできます。これにより、後から原因をじっくり確認できます。

プログラムが止まった後でも調査できるため、エラー対応がとても楽になります。

7. tracebackを使うメリット

7. tracebackを使うメリット
7. tracebackを使うメリット

tracebackモジュールを使う最大のメリットは、エラーの状況を正確に残せることです。初心者の方でも、「どこで何が起きたか」を冷静に確認できます。

感覚的には、失敗した瞬間を動画で録画しておくようなものです。

8. 初心者が混乱しないための読み方

8. 初心者が混乱しないための読み方
8. 初心者が混乱しないための読み方

スタックトレースは下から上に読むのが基本です。一番下が、直接の原因です。最初は全部を理解しようとせず、エラーの種類と行番号を見るだけで十分です。

tracebackを使うことで、Pythonの例外処理がより分かりやすくなり、トラブルへの不安も減っていきます。

カテゴリの一覧へ
新着記事
New1
Python
Pythonで複数の例外をまとめてキャッチする方法を完全解説!初心者でもわかる例外処理入門
New2
Python
Pythonでリストをコピーする方法!copy()・スライス・list()の使い方を比較
New3
Django
Djangoバリデーションの種類まとめ|フォーム・モデル・フィールドレベルの違いを初心者向けに徹底解説
New4
Flask
FlaskアプリをGCP Cloud Functionsで動かす!初心者向けサーバーレス公開ガイド
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.2
Java&Spring記事人気No2
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.3
Java&Spring記事人気No3
Flask
Flaskでデータベースを使う基本!SQLAlchemyの導入方法をやさしく解説
No.4
Java&Spring記事人気No4
Python
Pythonで空白や不要な文字を削除する方法!strip(), rstrip(), lstrip() の使い方を初心者向けに解説
No.5
Java&Spring記事人気No5
Python
Pythonのコーディング規約(PEP8)とは?初心者でもわかる書き方の基本ルール
No.6
Java&Spring記事人気No6
Flask
Flaskでフロントエンドからファイルアップロードを行う基本手順【初心者向け】
No.7
Java&Spring記事人気No7
Flask
Flaskでデータベースエラーを処理する方法!初心者にもわかる例外の使い方
No.8
Java&Spring記事人気No8
Django
DjangoのincludeでURLを分割管理する方法を完全ガイド!初心者でも迷わないURLルーティング入門