修改程序BUG时,寻找问题所在话费时间比较多,而当真正找到问题的原因后,修改问题其实就没那么难了,下面这个方法,能帮助我们快速查找问题原因。
private void logCaller(){
StackTraceElement[] elements = new Throwable().getStackTrace();
for(int i=0;i<elements.length;i++){
StackTraceElement ste = elements[i];
System.out.println("调用这栈信息:"+ste.getClassName()
+"."+ste.getMethodName()
+"().line number:"+ste.getLineNumber());
Logger.debug("调用者栈信息:"+ste.getClassName()
+"."+ste.getMethodName()
+"().line number:"+ste.getLineNumber());
}
}
通过在方法中差生一个异常,得到当前栈信息,来调试程序,能快速跟踪程序。此方法可以看做是大家平时常用的System.out.println("");方式的加强版,是异于单步debug调试的另一种好方法