zoukankan      html  css  js  c++  java
  • java 打印程序堆栈中的信息

    简介

    作为程序奔溃调试的手段核心操作就是查看程序的堆栈。

    code

    package cn;
    
    import java.util.Scanner;
    
    public class StackTraceTest {
    	public static int factorial(int n){
    		System.out.println("factorial(" + n +"):");
    		Throwable t = new Throwable();
    		StackTraceElement[] frames = t.getStackTrace();
    		for (StackTraceElement f : frames){
    			System.out.println(f);
    		}
    		int r;
    		if(n <= 1) r = 1;
    		else r = n * factorial(n - 1);
    		System.out.println("return" + r);
    		return r;
    	}
    	public static void main(String[] args){
    		Scanner in = new Scanner(System.in);
    		System.out.print("Enter n:");
    		int n = in.nextInt();
    		factorial(n);
    	}
    }
    
    

    result

    Enter n:5
    factorial(5):
    cn.StackTraceTest.factorial(StackTraceTest.java:8)
    cn.StackTraceTest.main(StackTraceTest.java:23)
    factorial(4):
    cn.StackTraceTest.factorial(StackTraceTest.java:8)
    cn.StackTraceTest.factorial(StackTraceTest.java:15)
    cn.StackTraceTest.main(StackTraceTest.java:23)
    factorial(3):
    cn.StackTraceTest.factorial(StackTraceTest.java:8)
    cn.StackTraceTest.factorial(StackTraceTest.java:15)
    cn.StackTraceTest.factorial(StackTraceTest.java:15)
    cn.StackTraceTest.main(StackTraceTest.java:23)
    factorial(2):
    cn.StackTraceTest.factorial(StackTraceTest.java:8)
    cn.StackTraceTest.factorial(StackTraceTest.java:15)
    cn.StackTraceTest.factorial(StackTraceTest.java:15)
    cn.StackTraceTest.factorial(StackTraceTest.java:15)
    cn.StackTraceTest.main(StackTraceTest.java:23)
    factorial(1):
    cn.StackTraceTest.factorial(StackTraceTest.java:8)
    cn.StackTraceTest.factorial(StackTraceTest.java:15)
    cn.StackTraceTest.factorial(StackTraceTest.java:15)
    cn.StackTraceTest.factorial(StackTraceTest.java:15)
    cn.StackTraceTest.factorial(StackTraceTest.java:15)
    cn.StackTraceTest.main(StackTraceTest.java:23)
    return1
    return2
    return6
    return24
    return120
    
    Hope is a good thing,maybe the best of things,and no good thing ever dies.----------- Andy Dufresne
  • 相关阅读:
    git 删除远程分支
    测试模板--接口测试
    测试模板--PC浏览器兼容性测试
    Mock作用
    Docker实践--搭建JIRA平台
    Docker实践--搭建分布式UI测试环境
    Docker实践--搭建HttpRunnerManager测试平台
    Docker实践--搭建Yapi测试平台
    微博爬虫实践---搜索关键词
    接口实践--演练地址集合
  • 原文地址:https://www.cnblogs.com/eat-too-much/p/13585222.html
Copyright © 2011-2022 走看看