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

17

Есть ли способ распечатать сообщение об исключении в 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
    
задан sony 30.03.2013 в 20:44
источник
  • Вы можете разобрать строку сообщений исключения, чтобы получить только те части, которые вы хотите –  om-nom-nom 30.03.2013 в 20:46
  • Как просто использовать println с сообщением, которое вы хотите выводить без метода getMessage? –  Ali Alamiri 30.03.2013 в 20:50
  • Вы используете getCause (), чтобы получить внутреннее исключение и getMessage (), но я не стал бы гарантировать, что номер строки не будет там. Это довольно необычная утилита, вы можете сказать, что вы хотите сделать? Если вы просто хотите вывести удобное для пользователя сообщение для интерфейсного интерфейса, вам просто нужно его настроить, если он предназначен для разработчиков в любом случае - все это намного дружелюбнее. –  TC1 30.03.2013 в 20:50

2 ответа

17

Результат выглядит корректно для меня:

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() .

    
ответ дан micha 30.03.2013 в 20:58
-10
try {
} catch (javax.script.ScriptException ex) {
// System.out.println(ex.getMessage());
}
    
ответ дан user2127251 30.03.2013 в 20:52