在java中打印异常消息

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (21)

有没有例外的Java打印异常信息的方法?

当我尝试下面的一段代码时:

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 (<Unknown source>) in <Unknown source>; 
at line number 1

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

missing } after property list
提问于
用户回答回答于
try {
} catch (javax.script.ScriptException ex) {
// System.out.println(ex.getMessage());
}
用户回答回答于

输出对我来说是正确的:

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

我认为这Invalid Javascript code: ..是例外消息的开始。

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

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

所以也许你调用的代码会捕获一个异常并重新抛出一个异常ScriptException。在这种情况下,也许e.getCause().getMessage()可以帮助你。

扫码关注云+社区