private void printStack() {
Throwable ex = new Throwable();
StackTraceElement[] stackElements = ex.getStackTrace();
if (stackElements != null) {
for (int i = 0; i < stackElements.length; i++) {
StackTraceElement stackElement = stackElements[i];
String className = stackElement.getClassName(); //返回类的完全限定名,该类包含由该堆栈跟踪元素所表示的执行点。
String fileName = stackElement.getFileName(); //返回源文件名,该文件包含由该堆栈跟踪元素所表示的执行点。
int lineNumber = stackElement.getLineNumber(); //返回源行的行号,该行包含由该堆栈该跟踪元素所表示的执行点。
String methodName = stackElement.getMethodName(); //返回方法名,此方法包含由该堆栈跟踪元素所表示的执行点。
System.out.println("stackIndex: " + i + " - " + className + "." + methodName + ":" + lineNumber);
}
}
}