0

私は netbeans IDE で Java を使用しており、出力ウィンドウにデバッグしようとしています。私のログは、例外を除いて実行順に出力ウィンドウに出力されます。例外は、コードの実行中に順序よりも先に出力される傾向があります。ここに出力の例があります -

19:45:53.266 : 開始点を過ぎたかどうかを確認しています 19:45:53.267 : SortRequestIdList でエラーが発生しました。例外 = [Ljava.lang.Object; [Ljava.lang.String; にキャストできません。19:45:53.266 : スタート地点を過ぎました。境界に対する位置を確認しています 19:45:53.266 : 下限を下回っています。RunnerBelow を実行しようとしています 19:45:53.267 : ListLex でエラーが発生しました。例外 = null 19:45:53.266: *RunnerBelow に入る*

したがって、例外は「事前に」印刷されます。(イベント A がイベント B の前に実行される) => (A のデバッグ出力がイベント B の前に表示される) ように、これらの出力を制御する方法はありますか?

皆さんがこれで提供できる助けをありがとう!

クリス

4

2 に答える 2

2

通常、例外は System.err を使用して出力されますが、通常のデバッグ メッセージは System.out に書き込まれます。出力の作成に 2 つの異なるストリームが使用されるため、例外の前に発生したデバッグ メッセージの前に例外が書き込まれることがあります。

メッセージを生成するコードを変更できる場合は、catch ブロックの System.out に出力を追加することをお勧めします。(System.out.println(e.getMessage()) を使用できます)。これが不可能な場合は、関連するデバッグ メッセージを System.err に出力できます。

于 2012-04-12T08:33:27.957 に答える
1

printStackTraceを使用しますがSystem.err、他のすべての出力にはおそらく を使用しますSystem.out。コードで使用するかSystem.err.println(単純な解決策)、例外を受け入れてそのスタックトレースを出力するメソッドを作成しますSystem.out(かなり難しい)。

于 2012-04-12T08:29:10.877 に答える