採用情報|SKサービス株式会社

プログラミング入門 約8分で読めます

エラーが出たときの対処法|初心者が身につけるべきデバッグ思考

「エラーが出て、何をすればいいかわからない…」
「エラーメッセージが英語で意味がわからない…」

プログラミング初心者が最も挫折しやすいのが、エラーに直面したときです。

しかし、実はエラーは「敵」ではなく「味方」。正しい対処法を知っていれば、エラーはあなたの成長を助けてくれる存在になります。

この記事では、エラーが出たときの具体的な対処法と、エンジニアに必要なデバッグ思考を解説します。

まず知っておきたい:エラーは悪いことじゃない

エラーは「プログラムからのメッセージ」

エラーが出ると「失敗した」「自分にはセンスがない」と落ち込む人がいます。

しかし、エラーは「ここに問題があるよ」とプログラムが教えてくれているのです。

エラーメッセージがなかったら、どこが間違っているのかまったくわからず、もっと大変なことになります。エラーは実は親切な存在なのです。

プロのエンジニアも毎日エラーと戦っている

「エラーが出るのは初心者だから」と思うかもしれませんが、プロのエンジニアも毎日エラーに遭遇しています

違いは「エラーが出ないこと」ではなく、「エラーへの対処法を知っていること」です。

エラー対処の基本ステップ

エラーが出たときは、以下のステップで対処しましょう。

ステップ1:エラーメッセージを読む

当たり前のようですが、まずはエラーメッセージをしっかり読むことが大切です。

初心者がやりがちなのは、エラーが出た瞬間にパニックになり、エラーメッセージを読まずに「どうしよう」と悩むこと。

エラーメッセージには、以下の情報が含まれています:

  • 何が問題か(エラーの種類)
  • どこで起きたか(ファイル名、行番号)
  • なぜ起きたか(原因のヒント)

ステップ2:エラーの場所を特定する

エラーメッセージに表示されているファイル名と行番号を確認し、該当箇所のコードを見てみましょう。

File "main.py", line 5, in <module>
    print(hello)
NameError: name 'hello' is not defined

この場合、「main.pyの5行目」でエラーが発生していることがわかります。

ステップ3:エラーの種類を理解する

エラーにはいくつかの種類があります。種類を理解すると、原因を特定しやすくなります。

ステップ4:原因を推測し、修正する

エラーの場所と種類がわかったら、原因を推測して修正します。

ステップ5:再度実行して確認する

修正したら、再度プログラムを実行してエラーが解消されたか確認します。

よくあるエラーの種類と対処法

① SyntaxError(構文エラー)

原因:プログラムの書き方がルールに従っていない

# エラーになるコード
if x == 1
    print("hello")

# SyntaxError: invalid syntax

対処法:コロン : や括弧 ()、引用符 " の閉じ忘れがないか確認

# 修正後
if x == 1:
    print("hello")

② NameError(名前エラー)

原因:定義されていない変数や関数を使おうとした

# エラーになるコード
print(message)

# NameError: name 'message' is not defined

対処法:変数名のスペルミス、定義し忘れがないか確認

# 修正後
message = "hello"
print(message)

③ TypeError(型エラー)

原因:データの型が合っていない

# エラーになるコード
age = "25"
print(age + 1)

# TypeError: can only concatenate str (not "int") to str

対処法:データの型を確認し、必要に応じて変換する

# 修正後
age = "25"
print(int(age) + 1)  # 文字列を数値に変換

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

原因:リストの範囲外にアクセスしようとした

# エラーになるコード
fruits = ["apple", "banana", "orange"]
print(fruits[3])

# IndexError: list index out of range

対処法:リストの要素数を確認(インデックスは0から始まることに注意)

# 修正後
fruits = ["apple", "banana", "orange"]
print(fruits[2])  # 0, 1, 2 で3つ目はインデックス2

⑤ KeyError(キーエラー)

原因:辞書に存在しないキーにアクセスしようとした

# エラーになるコード
user = {"name": "山田", "age": 25}
print(user["email"])

# KeyError: 'email'

対処法:キーが存在するか確認する、または get() メソッドを使う

# 修正後
user = {"name": "山田", "age": 25}
print(user.get("email", "未設定"))  # キーがなければ"未設定"を返す

エラーが解決しないときの対処法

上記のステップで解決しない場合は、以下を試しましょう。

① エラーメッセージをそのままGoogle検索

エラーメッセージをそのままコピーしてGoogle検索するのは、最も効果的な方法の1つです。

同じエラーに遭遇した人が、Stack OverflowやQiitaなどで解決策を共有していることが多いです。

検索のコツ:

  • ファイル名や変数名など、自分のコード固有の部分は削除する
  • 言語名を追加する(例:「TypeError Python」)
  • 英語で検索すると情報量が多い

② コードを少しずつ確認する

エラーの原因がわからない場合は、コードを少しずつ実行してどこで問題が起きているか特定しましょう。

# 途中経過を確認する
print("ここまでOK - 1")
# 処理A
print("ここまでOK - 2")
# 処理B
print("ここまでOK - 3")
# 処理C

どの print まで表示されるかで、問題のある箇所を絞り込めます。

③ 変数の中身を確認する

「思った通りの値が入っているか」を print() で確認しましょう。

data = get_data()
print(f"dataの中身: {data}")  # ← 確認用
print(f"dataの型: {type(data)}")  # ← 型も確認

④ 一度休憩する

意外かもしれませんが、一度離れて休憩するのも有効な対処法です。

長時間悩んでいると視野が狭くなり、単純なミスに気づけなくなることがあります。5分〜10分休憩して、リフレッシュしてから見直すと、あっさり原因が見つかることも。

⑤ 人に質問する

どうしても解決しない場合は、人に質問しましょう。

質問できる場所:

  • teratail(日本語のQ&Aサイト)
  • Stack Overflow(英語、情報量が多い)
  • Twitter/X(#駆け出しエンジニア など)

良い質問の仕方:

  1. 何をしようとしたか
  2. どんなエラーが出たか(エラーメッセージ全文)
  3. 該当するコード
  4. 自分で試したこと

デバッグ思考を身につけよう

エラー対処を効率的に行うための「考え方」を身につけましょう。

① 「なぜ?」を繰り返す

エラーが出たら、「なぜこのエラーが出たのか?」を考えます。

エラー:NameError: name 'msg' is not defined

なぜ? → 'msg'という変数が定義されていないから
なぜ? → 変数名を'message'にしたのに、'msg'と書いてしまったから
対策 → 変数名を'message'に修正

② 仮説を立てて検証する

「たぶんここが原因だろう」と仮説を立て、それを検証します。

仮説1:変数名のスペルミス? → 確認 → 違った
仮説2:データの型が違う? → print(type(x))で確認 → 正解!

③ 変更は1つずつ

一度に複数の箇所を変更すると、どの変更で直ったかわからなくなります。修正は1箇所ずつ行い、その都度動作確認しましょう。

④ 動いていたときの状態に戻す

「さっきまで動いていたのに、急に動かなくなった」という場合は、最後に変更した箇所が原因の可能性が高いです。

Gitを使っていれば、変更履歴を確認して動いていた状態に戻すことができます。

エラーを減らすための予防策

① こまめに動作確認する

100行書いてから実行するのではなく、10行ごとに実行して動作確認しましょう。問題の箇所を特定しやすくなります。

② エディタの機能を活用する

VS Codeなどのエディタには、以下のような便利な機能があります:

  • シンタックスハイライト:コードに色がついて見やすくなる
  • リンター:実行前にエラーを検出してくれる
  • 自動補完:変数名や関数名を補完してくれる(スペルミス防止)

③ コードを整理する

インデント(字下げ)を揃え、適切に改行することで、コードが見やすくなり、ミスに気づきやすくなります。

まとめ

ステップ やること
1 エラーメッセージを読む
2 エラーの場所(ファイル名、行番号)を確認
3 エラーの種類を理解する
4 原因を推測して修正
5 再実行して確認

解決しないときは:

  • エラーメッセージでGoogle検索
  • コードを少しずつ確認
  • 変数の中身をprint()で確認
  • 一度休憩する
  • 人に質問する

エラーは、プログラミングを続ける限り一生付き合っていくものです。

大切なのは「エラーを恐れないこと」「エラーから学ぶこと」。エラーを1つ解決するたびに、あなたのスキルは確実に上がっています。

SKサービスでエンジニアとしてのキャリアをスタート

SKサービスでは、未経験からエンジニアを目指す方を積極的に採用しています。

「エラーが怖い」「一人で解決できるか不安」という方も大丈夫。現場で先輩エンジニアに相談しながら、着実にスキルを身につけられます。

正社員雇用で安定した環境。最短3ヶ月で現場変更できるから、さまざまな経験を積みながら成長できます。

エントリーはこちら

この記事が参考になったら、ぜひSNSでシェアしてください!

この記事をシェア
JOIN US JOIN US JOIN US JOIN US JOIN US JOIN US JOIN US JOIN US

ENTRY

- エントリーはこちらから -

Page Top