首页 > 解决方案 > 处理切断堆栈跟踪

问题描述

使用Command line edition for Processing 0269 (Java Mode)在 macOS 10.14.6 的 Terminal.app 中运行


我正在使用processing-java运行产生错误的处理程序。因此,将打印以下堆栈跟踪:

java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    at processing.core.PApplet.runSketch(PApplet.java:10845)
    at processing.core.PApplet.main(PApplet.java:10613)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at processing.core.PApplet.runSketch(PApplet.java:10839)
    ... 1 more
Caused by: java.lang.NullPointerException
    at treibsand$Runtime.averageHistory(treibsand.java:72)
    at treibsand$Analyzer.<init>(treibsand.java:204)
    at treibsand.<init>(treibsand.java:105)
    ... 6 more

... 6 more现在,如果不是显示文字,而不是堆栈跟踪的其余部分,则此信息可能会很有用。

在Processing IDE中运行程序时会显示相同的堆栈跟踪。

如何查看整个堆栈跟踪?

标签: processingstack-trace

解决方案


处理不会切断任何东西。这是 Java 标准的一部分。请参阅此处了解更多信息。

不过应该没关系。堆栈跟踪的顶部几乎总是包含您要查找的信息。在您的情况下,您正在点击NullPointerException第 72 行treibsand.java(顺便说一下,应该使用大写字母命名以遵循标准命名约定)。

如果您确实需要更多关于到底发生了什么的信息,那么您可以在该行上方添加您自己的日志并打印出您想要的任何内容,包括完整的堆栈跟踪。但我的猜测是这实际上并没有帮助,因为问题发生在堆栈跟踪顶部的行上。

这可能是由于在草图初始化之前尝试使用处理函数等引起的。但同样,该信息在堆栈跟踪中不会更低。


推荐阅读