大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说『Java』堆栈跟踪,希望您对编程的造诣更进一步.
堆栈跟踪
Java
为此有一个特殊集合 - 堆栈。这个集合中有多种方法可 “添加元素
” 和 “获取元素
”
在 Java
程序中,方法 A 调用 方法 B,方法 B 调用 方法 C ,方法 C 接着调用 方法 D 。如要退出 方法 B,我们必须首先退出方法 C ,退 方法 C 就要首先退出方法 方法 D。这种行为就像一个 堆栈
。
堆栈是一组元素,像一堆纸一样。要从最上层拿起第三张纸,你首先需要拿第二张纸,为此,你需要拿第一张纸。你总是可以放纸和抽纸,但始终必须先获取最上面的纸。
函数调用也是如此。**方法 A **调用 方法 B,方法 B 又调用方法 C。要退出 方法 A,你必须先退出 方法 B,而退出 方法 B 又要退出 方法 C 。
函数调用的顺序称为 “调用堆栈
” ,或简称为 “堆栈
”。最后一个调用的函数是第一个终止的函数
。
获取并显示当前调用堆栈:
public class ExceptionExample
{
public static void main(String[] args)
{
method1();
}
public static void method1()
{
method2();
}
public static void method2()
{
method3();
}
public static void method3()
{
StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
for (StackTraceElement element : stackTraceElements)
{
System.out.println(element.getMethodName());
}
}
}
结果:
getStackTrace
method3
method2
method1
main
Java
机器跟踪所有函数调用。为此,它有一个特殊的集合 - 堆栈。当一个函数调用另一个,则 Java
机器在堆栈中放入一个新的 StackTraceElement
对象。函数完成后,该元素会从堆栈中移除。这意味着堆栈始终存储 “函数调用堆栈
” 当前状态的最新信息。
每个 StackTraceElement
对象包含所调用方法的信息。特别是,你可以使用 getMethodName
方法获取方法名称。
从上述示例中可看出它的工作原理:
1) 我们获取了调用堆栈。
2) 我们使用 for-each
循环来遍历。你最好没忘记那个概念。
3) 我们将方法名称输出到 System.out
。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/36683.html