如何在终端上打印所有java异常?

Mas*_*lor 13 java cmd

我注意到,每当终端上抛出异常时,我经常会得到一个简短的故障跟踪,例如:

java.lang.NoClassDefFoundError: javafx/application/Application
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: javafx.application.Application
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 13 more
Exception in thread "main" 
Run Code Online (Sandbox Code Playgroud)

我想知道的是如何打印所有的痕迹,包括那些... 13 more.

编辑:这篇文章已被确定为printStackTrace()上打印完整调用堆栈的可能重复.我确实读了后者,但没有找到我的问题的答案,我只找到了它为什么会发生的信息.

enr*_*cis 4

您可以将Throwable对象(Exception在您的情况下)传递给如下方法:

static void printFullTrace(Throwable throwable){
    for(StackTraceElement element: throwable())
        System.out.println(element);
}
Run Code Online (Sandbox Code Playgroud)

事实上,您已经在这些行中看到了整个堆栈跟踪,因为其中一部分是重复的,因此为了简洁而省略了。您可以在这里更好地理解该机制。