カテゴリ: 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
Flask
FlaskアプリのSECRET_KEYの設定方法を完全ガイド!初心者でもわかるセキュリティ対策
New3
Django
Djangoマイグレーション自動生成の仕組み|models.pyとの関係を初心者向けに徹底解説
New4
Flask
PythonのFlaskでテンプレートを多言語化!翻訳の基本構文を完全ガイド
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.2
Java&Spring記事人気No2
Flask
PythonのFlaskで言語を自動判別!ユーザーに合わせた表示切り替えの仕組みを徹底解説
No.3
Java&Spring記事人気No3
Python
Pythonの文字列から一部を抽出する方法!スライスを使った基本的な切り出し方
No.4
Java&Spring記事人気No4
Python
Pythonの変数宣言と型ヒントの使い方!初心者向けに基礎をやさしく解説
No.5
Java&Spring記事人気No5
Flask
FlaskアプリのSECRET_KEYの設定方法を完全ガイド!初心者でもわかるセキュリティ対策
No.6
Java&Spring記事人気No6
Python
Pythonのリストを分割する方法を完全ガイド!初心者でもわかるスライス・split・itertoolsの使い方
No.7
Java&Spring記事人気No7
Python
Pythonとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.8
Java&Spring記事人気No8
Flask
PythonのFlaskで翻訳用のメッセージファイルを作成する手順を完全ガイド!