[英]Print out full error message from java via commandline
我當前正在運行一個只能通過使用Java的程序命令行運行的應用程序。 當我打印出錯誤時,如何查看完整的打印件?
即我如何看待“另外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
此堆棧跟蹤包含您需要了解的所有內容,並且與控制台輸出無關。 它只是跳過重復的行。
更新。
假設您的方法調用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
是反射通常使用的異常。
請參閱http://www.docjar.com/html/api/java/lang/Throwable.java.html#671,以獲取根據您的情況生成13 more
代碼的代碼。
它計算此異常與先前打印的異常共有的堆棧跟蹤元素。 因此,您知道必須將上述異常中的最后13行(在本例中是全部)添加到截斷的跟蹤中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.