5

考虑以下异常打印

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

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

4

1 回答 1

15

仅仅是因为编译器在生成的字节码中包含了行号。如果您愿意,有一些-g 选项(在 Oracle javac 编译器中)允许关闭它。

于 2013-04-17T20:20:38.350 回答