java代码中追踪文件名和行号

 

java中对于当前执行的文件号和行号的追踪信息封装在StackTraceElement 对象中。

对于该对象的JDK手册中的描述如下

 
public final class StackTraceElement
         
        
        
        
extends Object
implements Serializable
 

堆栈跟踪中的元素,它由 Throwable.getStackTrace() 返回。每个元素表示单独的一个堆栈帧。所有的堆栈帧(堆栈顶部的那个堆栈帧除外)都表示一个方法调用。堆栈顶部的帧表示生成堆栈跟踪的执行点。通常,这是创建对应于堆栈跟踪的 throwable 的点。

 

对象的实例方法:

boolean equals(Object obj)
如果指定的对象是另一个 StackTraceElement 实例,并且该对象表示的执行点与该实例的相同,则返回 ture。
String getClassName()
返回类的完全限定名,该类包含由该堆栈跟踪元素所表示的执行点。
String getFileName()
返回源文件名,该文件包含由该堆栈跟踪元素所表示的执行点。
int getLineNumber()
返回源行的行号,该行包含由该堆栈该跟踪元素所表示的执行点。
String getMethodName()
返回方法名,此方法包含由该堆栈跟踪元素所表示的执行点。
int hashCode()
返回此堆栈跟踪元素的哈希码值。
boolean isNativeMethod()
如果包含由该堆栈跟踪元素所表示的执行点的方法是一个本机方法,则返回 true。
String toString()
返回表示该堆栈跟踪元素的字符串。

 

java代码示例:

  
  
  
  
  1. public class Test10  
  2. {  
  3.     public static void main(String args[])  
  4.     {  
  5.         System.out.println("This is " + getLineInfo());  
  6.     }  
  7.    
  8.     public static String getLineInfo()  
  9.     {  
  10.         StackTraceElement ste = new Throwable().getStackTrace()[1];  
  11.         return ste.getFileName() + ": Line " + ste.getLineNumber();  
  12.     }  
  13. }  

 输出结果:

This is FileTrace.java: Line 6
 

你可能感兴趣的:(文件名,java行号)