有没有办法获得java文件/行号?
在C/C++中,文件名由FILE返回并且行号由返回LINE。 Java确实有一个getFileName(),但似乎没有相应的getLineNumber()。 这将是很好能够做这样的事情:有没有办法获得java文件/行号?
catch (Exception e) {
System.err.println(this.getFileName() + this.getLineNumber() + e.getMessage());
}
有没有办法让java文件/行号?
public static void main(String[] args)
{
StackTraceElement frame = new Exception().getStackTrace()[0];
System.out.println(frame.getFileName());
System.out.println(frame.getLineNumber());
}
恕我直言,最好是做Thread.currentThread()。getStackTrace()而不是构造一个例外。两者都是有效的和工作的解决方案:) – 2010-09-08 15:48:42
@Alain O'Dea我同意。我没有意识到/忘记了Thread.currentThread()。getStackTrace() – gawi 2010-09-08 16:21:14
最新链接:http://download.oracle.com/javase/6/docs/api/java/lang/StackTraceElement.html – 2010-09-08 15:46:06
这可能是太多了,但你可以做'e.printStackTrace()'。 – 2010-09-08 15:38:13
实际上,e.printStackTrace()比获取*报告错误的位置的文件名和行号更有用。 – gawi 2010-09-08 16:28:20
为什么JavaBeans IDE会警告:“应该删除e.printStackTrace()?” – jacknad 2010-09-08 19:11:42