在java中打印exception消息

有没有办法在Java中打印exception消息而没有例外?

当我尝试以下代码时:

try { // statements } catch (javax.script.ScriptException ex) { System.out.println(ex.getMessage()); } 

输出是:

 Invalid JavaScript code: sun.org.mozilla.javascript.internal.EvaluatorException: missing } after property list () in ; at line number 1 

有没有办法打印消息没有exception信息,源和行号信息。 换句话说,我想在输出中打印的消息是:

 missing } after property list 

输出对我来说是正确的:

 Invalid JavaScript code: sun.org.mozilla.javascript.internal.EvaluatorException: missing } after property list () in ; at line number 1 

我认为Invalid Javascript code: ..是exception消息的开始。

通常,堆栈跟踪不会返回消息:

 try { throw new RuntimeException("hu?\ntrace-line1\ntrace-line2"); } catch (Exception e) { System.out.println(e.getMessage()); // prints "hu?" } 

因此,您调用的代码可能会捕获exception并重新抛出ScriptException 。 在这种情况下,也许e.getCause().getMessage()可以帮助你。

 try { } catch (javax.script.ScriptException ex) { // System.out.println(ex.getMessage()); }