java 中可以通过 eclipse 等工具直接打印堆栈,但是对于某些环境中无法使用 eclipse 工具时,需要知道堆栈,如何处理呢?
介绍3种方法供选择:
方法一:
package name.xu;
public class CallStack {
public static void printCallStatck() {
Throwable ex = new Throwable();
StackTraceElement[] stackElements = ex.getStackTrace();
if (stackElements != null) {
for (int i = 0; i < stackElements.length; i++) {
System.out.print(stackElements[i].getClassName()+"/t");
System.out.print(stackElements[i].getFileName()+"/t");
System.out.print(stackElements[i].getLineNumber()+"/t");
System.out.println(stackElements[i].getMethodName());
System.out.println("-----------------------------------");
}
}
}
}方法二:
Exception e = new Exception("this is a log");
e.printStackTrace();
方法三:
String fullStackTrace = org.apache.commons.lang.exception.ExceptionUtils.getFullStackTrace(e)方法四:
Thread.currentThread().getStackTrace()推荐方法一,原因:简单易用,速度快

本文介绍了在Java中不依赖IDE工具打印堆栈信息的四种方法,包括通过创建Throwable实例获取堆栈跟踪元素、利用Exception对象的printStackTrace()方法、使用Apache Commons Lang库中的getFullStackTrace()方法以及调用Thread.currentThread().getStackTrace()。这些方法适用于不同的应用场景。
7837

被折叠的 条评论
为什么被折叠?



