更新:您最好使用您發現的IDE以外的斷點。
否則,您可以通過System.setOut(..)
設置自定義PrintStream
還有,每當印刷的東西,還打印Thread.currentThread().getStackTrace()
理想情況下你應該PrintStream
只是包裝原System.out
和分派給它。喜歡的東西:
public class PrintStreamWrapper extends PrintStream {
public PrintStreamWrapper(OutputStream out) {
super(out);
}
public void println(String x) {
StackTraceElement[] trace = Thread.currentThread().getStackTrace();
// print everything, but not to the System.out,
// because you'll end up in a loop.
super.println(x);
}
}
,然後在你的程序的開頭:
System.setOut(new PrintStreamWrapper(System.out));
哇!非常感謝!作爲另一種選擇,我才發現,原來Eclipse是能夠打破執行時,拋出一個異常:http://agile.csc.ncsu.edu/SEMaterials/tutorials/eclipse-debugger/#section5_0 – zakmck 2011-05-30 17:03:59
@ user529286是的,這也是一個選項。也許是一個更好的。 – Bozho 2011-05-30 17:06:15
@Bozho:嚴格地說,包裝類應該使用組合而不是繼承,正確嗎? – 2016-04-15 18:36:39