クリーム色の背景、色付き表示、高コントラスト、大きな文字のほうが読みやすいですか?配色と文字を選ぶと、すべてのページに一度で反映されます。

無料レッスン

エラーを読んで直し方を探す

このレッスンのあとで: エラーメッセージを読んで、直し方を見つけられる。

50分のレッスンコマンドなし

赤い文字が十行

市役所の情報システム課で、手数料を集計するプログラムを動かしました。画面に、英語の赤い文字が十行ほど出て止まりました。

慌てて全部を読もうとすると、どこを見ればいいかわからなくなります。

実は、読む順番が決まっています。大事な一行を見つければ、直し方の半分はわかります。

このレッスンのゴール

メモ

エラーメッセージを読んで、直し方を見つけられる。

キーワード

ことばいみれい
エラーメッセージプログラムが止まった理由を伝える文
トレースバックエラーまでの道すじを示す表示Traceback
例外の種類エラーの分類を表す名前TypeError
ドキュメント道具の使い方を書いた公式の説明
SSH離れたサーバーに安全にログインする方法

学生が入力するセルは、このプレビューでは空白です。

トレースバックは一番下から読む

Python が止まると、トレースバックが出ます。上から下へ、エラーまでの道すじが書かれています。

読むのは一番下の行からです。そこに例外の種類と、短い説明があります。

次に、その上の line 6 のような行を見ます。どのファイルの何行目で止まったかがわかります。

止まるプログラムを動かす

コード: python
# 市役所の窓口で受け付けた手数料を合計します。
fees = ["300", "450", "200"]

total = 0
for fee in fees:
    total = total + fee  # ここで止まります

print("合計:", total, "円")

# 実行して、一番下の行を読んでください。
# やってみましょう: fee を int(fee) に変えて、もう一度実行してください。

大事な一行を日本語にする

一番下の行は英語ですが、短いので一語ずつ読めます。

下の例では、「int と str は + で足せない」と書いてあります。数と文字列を足そうとした、という意味です。

何が起きたかを自分の言葉で言えれば、直し方が見えてきます。今回は、文字列を int() で数に変えれば直ります。

例: 先ほどのトレースバック

コード: python
Traceback (most recent call last):
  File "fees.py", line 6, in <module>
    total = total + fee
TypeError: unsupported operand type(s) for +: 'int' and 'str'

例: よく見る例外と意味

例外の種類意味よくある原因
TypeError型が合わない数と文字列を足した
ValueError値の形が合わない「1,280円」を int にした
KeyErrorそのキーがないキー名の打ち間違い
FileNotFoundErrorファイルがないパスの間違い
NameErrorその名前がない変数名の打ち間違い

学生が入力するセルは、このプレビューでは空白です。

よくある誤解

注意

エラーが出たら、トレースバックの一番上を読めばよい、と思われがちです。一番上は、プログラムの入口にすぎません。止まった理由は一番下にあります。必ず下から読みましょう。

調べ方と質問の仕方

直し方がわからないときは、一番下の行をそのまま検索します。ファイル名や自分の数字は外します。

答えは、まず公式のドキュメントで確かめます。古い記事の方法は、今の版では動かないことがあるからです。

人に聞くときは、三つを書きます。何をしたか、何が起きたか、何を試したかです。

サーバーのエラーは SSH で見る

本番のサーバーで起きたエラーは、サーバーのログに残ります。

サーバーには ssh ユーザー名@サーバー名 でログインします。中に入れば、前に学んだ tail や grep でログを読めます。

下は実際のやりとりの例です。練習環境にはネットワークがないので、読むだけにします。

例: サーバーでログを見る

コード: bash
$ ssh [email protected]
sato@app01:~$ tail -n 3 /var/log/app/error.log
2026-10-20 09:14:02 ERROR 申請番号 3301 の保存に失敗しました
2026-10-20 09:14:02 ERROR ValueError: invalid literal for int() with base 10: '1,280円'
2026-10-20 09:15:40 INFO 再起動しました

授業で使いますか?このモジュールを学生に割り当てると、教員用ガイド、自動採点つきの課題、学生ごとのラボを使えます。