Я использую Java ScriptEngine для выполнения кода JavaScript. Я использую Invocable Interface, чтобы я мог использовать Script Code как обычный Java-объект, реализующий Java-интерфейс.
Если код JavaScript
- недействительно
- не соответствует интерфейсу (отсутствующие методы, неправильный тип возвращаемого значения, исключение и т. Д.)
Я получаю внутреннее исключение от Rhino или UndeclaredThrowableException при выполнении кода. Оба являются RuntimeExceptions, которые «не разрешено» перехватывать.
Есть ли способ проверить код перед выполнением? Или я должен нарушить здесь правило и поймать RuntimeExceptions? Это будет работать для меня, но какой самый элегантный способ?