我目前正在运行一个只能通过使用java的program / s命令行运行的应用程序。当我打印出错误时,如何查看完整的打印件?
即。我怎么看“13更多”
Exception:
java.lang.reflect.InvocationTargetException
(rethrown as com.comsol.util.exceptions.FlException)
Messages:
Error running java class
- Detail: Error_running_java_class
Stack trace:
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.comsol.util.application.CsBaseApplication.runExternalClassStat(Unknown Source)
at com.comsol.util.application.CsBaseApplication.runExternalClass(Unknown Source)
at com.comsol.util.compile.a$a.a(Unknown Source)
at com.comsol.util.compile.a$a.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IndexOutOfBoundsException: Index: 4, Size: 4
at java.util.ArrayList.RangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at Enviornment.makeNextGen(Enviornment.java:269)
at Enviornment.main(Enviornment.java:44)
... 13 more
谢谢!
答案 0 :(得分:4)
此堆栈跟踪包含您需要知道的所有内容,与控制台输出无关。它只是跳过重复的行。
更新。
假设您的方法调用a()
调用b()
并且b()
捕获从其他方法foobar()
抛出的异常,将其包装在另一个异常中并重新抛出它。这是堆栈跟踪的外观:
void b() {
try {
foobar();
} catch(Exception e) {
// Stack trace for e:
// foobar()
// b()
// a()
throw new RuntimeException("error",e);
}
}
void a() {
try {
b();
} catch(Exception e) {
// Stack trace for e
// b()
// a()
// Cause:
// foobar()
// b() - repeating line
// a() - repeating line
e.printStackTrace();
}
}
因此,打印异常的代码只是跳过重复行,因为它们没有附加值。在您的问题中,在我的示例中,InvocationTargetException
被RuntimeException
代替InvocationTargetException
。 {{1}}是反射通常使用的异常。
答案 1 :(得分:1)
有关在您的案例中生成13 more
的代码,请参阅http://www.docjar.com/html/api/java/lang/Throwable.java.html#671。
它计算此异常与先前打印的异常相同的堆栈跟踪元素。所以你知道你必须将最后13行(在这种情况下意味着全部)从上面的异常添加到截断的跟踪。