在 java 中打印异常消息

2022-09-01 23:47:26

有没有办法在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

答案 1

输出对我来说看起来是正确的:

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?"
}

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


答案 2

在 Java 中,有三种方法可以打印异常信息。

1.java.lang.Throwable.printStackTrace() method

e.printStackTrace();

2.toString() 方法:

catch (Exception e)
        {
            System.out.println(e.toString());
        }

3.java.lang.Throwable.getMessage() method

catch (Exception e)
        {
            System.out.println(e.getMessage());
              
        }

推荐