JAVA 利用Throwable和Thread分析堆栈跟踪元素

堆栈跟踪是一个方法调用过程的立标,它包含了程序执行过程中方法的调用的特定位置。可以使用Throwable类和Thread类提供

的接口获取堆栈信息,进行分析调用情况。废话少说直接上代码:

		//方法1:查看堆栈中的文本信息
		Throwable t= new Throwable();
		StringWriter out=new StringWriter();
		t.printStackTrace(new PrintWriter(out));
		System.out.println(out.toString());
		
		//方法2:查看堆栈跟踪元素
		Throwable t = new Throwable();
		StackTraceElement[] elements=t.getStackTrace();
		
		for(StackTraceElement element:elements){
			System.out.println("堆栈信息:"+element.toString());
		}
		
		//方法3:查看所有线程堆栈的跟踪信息
		Map stacksMap=Thread.getAllStackTraces();
		
		for(Thread t:stacksMap.keySet()){
			 StackTraceElement[] elements = stacksMap.get(t);
			 for(StackTraceElement element:elements){
				 System.out.println("堆栈信息:"+element.toString());System.out.println("堆栈信息:"+element.toString());
			 }
		}


你可能感兴趣的:(JAVA)