Подтвердить что ты не робот

Сообщение об исключении печати в java

Есть ли способ распечатать сообщение об исключении в 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
4b9b3361

Ответ 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: .. - это начало сообщения об исключении.

Как правило, stacktrace не возвращается с сообщением:

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

Таким образом, возможно, код, который вы вызываете, вызывает исключение и возвращает значение ScriptException. В этом случае может помочь e.getCause().getMessage().

Ответ 2

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