在 java 中打印 stackTrace 并调试异常
stackTrace(法语中的call trace)是 java 中堆栈执行期间的表示 程序。当程序员编译他们的程序时,在我们的程序中很常见。调用跟踪允许我们跟踪错误的来源.public static void main(String[] args) {
press(null);//line 9
}
static void press(int[] a) {
System.out.println(button ”+a[0]);//line 12
}
线程main”中的异常 java.lang.NullPointerException
at myClass.press(StringCompare.java:12)
at myClass.main(StringCompare.java:9)
此示例很简单,您可以通过单击最后一个调用的方法来判断错误发生的位置。错误位于第 12 行,指示访问 null 对象 (NullPointerException)。唯一存在的对象是 a[0],所以它是 null,我们注意到 press 方法是在 main 中使用 null 参数调用的。
try/catch
方法 java.lang.Throwable.printStackTrace() 按堆栈的降序打印从异常开始到出现的整个序列。最后一行表示根,即第一个堆叠方法,最后一行表示其错误所在的堆栈的顶部。线条是红色的,因为显示是用它完成的。System.err.
线程main”中的异常 java.lang.IllegalArgumentException: input == null!抛出此异常通过运行程序:
at javax.imageio.ImageIO.read(Unknown Source)
at Fenetre.(Fenetre.java:127)
at Test.main(Test.java:9)
Fenetre.java 类打开,我们可以在第 127 行中查找原因,该原因指示输入流为 null。这意味着没有找到图像,但为什么会引发异常?
线程main”中的异常 java.lang.IllegalArgumentException: input == null!我们在捕获中查找异常类型,我们注意到它是 IOExeption,因为 getResource 方法必须强制访问 file/icone.png 中的资源,否则在我们的例子中,图像不是不可访问,则抛出异常,程序停止。
引用
什么是堆栈跟踪,如何使用它来调试我的应用程序错误?
Class Throwable