假设我收到以下java异常
ERROR - Error occured while reading properties. (MyPropertyReader.java)
java.lang.NullPointerException
at com.x.MyPropertyReader.init(PropertyReader.java:**222**)
at com.x.MyPropertyReader.<init>(PropertyReader.java:119)
你怎么知道,第222行的代码块是什么?
例如:上面的异常是由以下代码行引起的,我希望在日志文件中看到类似下面的行。
propertyConfiguration.getProperty("REPORT_INFLUENCE_THRESHOLD"))).trim());
我想在日志文件中看到REPORT_INFLUENCE_THRESHOLD
字符串。
但是我很好奇在执行过程中如何以编程方式打印222行。
答案 0 :(得分:2)
显然,您首先需要将源文件放在类路径中。这个或至少在您知道可以找到它们的位置。
然后你会使用Throwable
's .getStackTrace()
返回一个StackTraceElement
s数组。
后者具有源文件名和行(IF AVAILABLE; jar可能已经或可能没有使用调试信息编译);从那时起,阅读,找行,打印!