Я начинаю сталкиваться с грязными маленькими секретами того, что в противном случае является очень полезной средой сценариев JSR223.
Я использую встроенную версию Rhino, поставляемую с Java 6 SE, и обращаюсь к ней через JSR223.ScriptingEngine
и др.
Когда я получаю исключение, вызванное объектом Java, который я экспортировал в среду Javascript, это ScriptingException
, который заключает в себе sun.org.mozilla.javascript.internal.WrappedException
, который охватывает мое настоящее исключение (например,UnsupportedOperationException
или что-то еще)
ScriptingException
возвращает значение null для getFileName () и -1 для getLineNumber ().Но когда я смотрю на сообщение и на отладчик, WrappedException
имеет правильное имя файла и номер строки, он просто не публикует его с помощью методов get ScriptingException.
Отлично. Что мне теперь делать? Я не знаю, как я собираюсь использовать sun.org.mozilla.javascript.internal.wrappedException, который в любом случае не является публичным классом.