Java 显示 StackTrace 中一行的实际 Java 代码行
Java display the actual Java code line for a line in StackTrace
假设我得到以下 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中打印行。
显然,您首先需要将源文件放在您的类路径中。这个或至少在您知道可以找到它们的位置。
那你就用Throwable
's .getStackTrace()
which returns an array of StackTraceElement
s.
后者有源文件名和行(如果可用;jar 可能已编译也可能未包含调试信息);从此,阅读,查找行,打印!
假设我得到以下 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中打印行。
显然,您首先需要将源文件放在您的类路径中。这个或至少在您知道可以找到它们的位置。
那你就用Throwable
's .getStackTrace()
which returns an array of StackTraceElement
s.
后者有源文件名和行(如果可用;jar 可能已编译也可能未包含调试信息);从此,阅读,查找行,打印!