如果结果只是这样,如何摆脱“ ... 1 more ”并查看导致抛出异常的完整调用堆栈:
// other output data
myPack.DynamicFieldsException
at myPack.DynamicFields.setField(DynamicFields.java:69)
at myPack.DynamicFields.main(DynamicFields.java:99)
Caused by: java.lang.NullPointerException
at myPack.DynamicFields.setField(DynamicFields.java:70)
... 1 more
请在您的回答中提供一个具体示例,即
catch (MyException e) { ??? }
应该使用什么代码代替“???” 得到想要的结果(全栈输出)?
现在使用:
catch (MyException e) { e.printStackTrace(); }
这个选项:
catch (NoSuchFieldException e) {
for (StackTraceElement l : e.getStackTrace())
System.out.println(l);
}
没有显示预定义的原因如何new Exception(new Exception());或如何new MyException().initCause(new MyException());
这种显示异常信息的方式是默认方式。这是它在代码中的样子
但是你总是可以捕获异常并以你想要的格式输出它。该方法
getStackTrace将返回一个 类型的数组StackTraceElement。您将在其中找到有关堆栈的所有必要信息。