JRE如何知道发生异常的代码行数?

时间:2013-04-17 20:18:45

标签: java

考虑以下异常打印

java.util.NoSuchElementException
    at java.util.StringTokenizer.nextToken(StringTokenizer.java:332)
    at com.infoaxe.mr.homefeed.ReduceTwo.reduce(MapReduce.java:290)

由于Java是一种编译语言,而在JVM中运行的是字节码而不是源代码本身,异常如何知道它出现在哪一行上?以上情况中的示例行332?

1 个答案:

答案 0 :(得分:15)

仅仅因为编译器在生成的字节码中包含行号。有-g options(在Oracle javac编译器中)允许关闭它,如果你愿意的话。