# 2 楼答案 当Java程序抛出异常时,将跟踪调用堆栈,直到找到匹配的catch子句。如果没有找到相应的catch子句,Java解释器将捕获异常并打印整个堆栈跟踪。回溯将只包括在中编译的行号 Sun的javac默认包含行号,而对于某些构建(如Ant的javac),您需要确保在构建中将调试级别设置为true。xml 参考资料:Ian F Darwin的Java食谱,获取可读的回溯|第31页
# 1 楼答案
当您使用生成调试信息标志(
-g
,或者更具体地说-g:{lines}
)进行编译时,编译器将向类文件添加调试信息对于行号,这是LineNumberTable属性
# 2 楼答案
当Java程序抛出异常时,将跟踪调用堆栈,直到找到匹配的catch子句。如果没有找到相应的catch子句,Java解释器将捕获异常并打印整个堆栈跟踪。回溯将只包括在中编译的行号
Sun的javac默认包含行号,而对于某些构建(如Ant的javac),您需要确保在构建中将调试级别设置为true。xml
参考资料:Ian F Darwin的Java食谱,获取可读的回溯|第31页