0

Eclipse 4.2.2 (Oracle JDK 1.7.0 で使用) はsynchronized、ブロックの先頭である間違った行の -Block 内でスローされた例外を示します。

実際の例では、例外が発生した行を特定するのは必ずしも容易ではありません。例外がスローされた実際の行を Eclipse に表示させる方法はありますか?


最小限の実例:

  public class Test {

    public static void main(String[] args) {
      Test test = new Test();
      test.test();
    }

    void test() {
      synchronized (this) {
        throw new RuntimeException();
      }
    }
  }

Eclipse はここに例外を示します。

ラインの例外

スタックトレース:

スタックトレース

4

1 に答える 1

5

あなたが持っているスクリーンショットは例外ではありませんが、デバッグ ビューです。現在の実行行がどこにあるかを示しており、それは正しいです。RuntimeException がスローされ、現在、実行はトップに戻っています。スクリーンショットでは、実行は 9 行目に達しています。

Eclipse のコンソール ビューに例外が表示され、10 行目が正しく表示されます。

Exception in thread "main" java.lang.RuntimeException
at LineNumber.test(LineNumber.java:10)
at LineNumber.main(LineNumber.java:5)

変数にキャプチャされていないため、ここで直接例外を検査することはできません (私の知る限り)。しかし、Preferences -> Java -> Debug -> Open Popup When Suspended on Exception に移動すると、Eclipse は、検査/ドリルできる例外 (正しい行番号) を含むポップを作成します。

于 2013-06-24T08:38:12.640 に答える