0Pricing
Java Academy · レッスン

スタックトレースの読み方

スタックトレースを読み、Javaプログラムを効率的にデバッグする方法を学びます。

「スタックトレースの読み方」はCoddyKit上の無料Java Academyレッスンです。 これはレッスン3/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJava Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Java Academyコースには全3レッスンが含まれています。

導入

例外が捕捉されないと、Javaはスタックトレースを出力します。スタックトレースには、エラーの型と、そこに至るメソッド呼び出しの連鎖が示されます。

スタックトレースの形式

スタックトレースには通常、次の情報が含まれます:

  • 1行目:例外の型とメッセージ。
  • 続く行:エラーがたどったメソッドとfile:line。

コード: 捕捉されない例外

この捕捉されないNullPointerExceptionは、methodA → methodB → mainの経路を示すスタックトレースを出力します。

public class Main {
  static void methodA() {
    methodB();
  }
  static void methodB() {
    String s = null;
    System.out.println(s.length()); // NullPointerException
  }
  public static void main(String[] args) {
    methodA();
  }
}

行の読み方

スタックトレースの各行には、クラス、メソッド、ソースコードの行番号が含まれます。上から下へ読むと、エラーが発生した場所と、どのように伝播したかが分かります。

コード: 範囲外アクセス

このコードは、正確な行番号とともにArrayIndexOutOfBoundsExceptionを出力するため、バグの場所を特定しやすくなります。

public class Main {
  public static void main(String[] args) {
    int[] nums = {1, 2, 3};
    System.out.println(nums[5]); // ArrayIndexOutOfBoundsException
  }
}

コード: printStackTrace

catchの中でprintStackTrace()を呼び出すと、実行を続けながらデバッグ用にトレースを表示することもできます。

public class Main {
  static void risky() {
    throw new RuntimeException("Custom message");
  }
  public static void main(String[] args) {
    try {
      risky();
    } catch (RuntimeException e) {
      e.printStackTrace(); // print custom trace
    }
  }
}

スタックトレースの確認

クイックチェック:スタックトレースの1行目には通常、何が示されますか。

まとめ

まとめ:スタックトレースには、例外の型とメソッド呼び出しの経路が示されます。スタックトレースを読むと、エラーの行を特定してすばやくデバッグできます。

よくある質問

「スタックトレースの読み方」レッスンは無料ですか?

はい。「スタックトレースの読み方」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Java Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Java Academyコースには全3レッスンが含まれています。

「スタックトレースの読み方」で何を学びますか?

スタックトレースを読み、Javaプログラムを効率的にデバッグする方法を学びます。 ブラウザで直接実行するハンズオンコードでJava Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Java Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのJava Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/3です。

「スタックトレースの読み方」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このJava Academyレッスンでコードを書いて実行できますか?

はい。すべてのJava Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. try/catch/finally
  2. チェック例外と非チェック例外
  3. スタックトレースの読み方
← Java Academyに戻る