Всякий раз, когда исключение выбрасывается из сценария, Rhino бросает RhinoException, у которого уже есть номер строки и столбца (и более). Однако при выполнении сценария вам необходимо указать номер строки, который будет использоваться Rhino в качестве номера стартовой строки. Фактический номер строки, где произошло исключение/ошибка, будет относиться к этому числу. Так что-то линия это:
//-- Define a simple test script to test if things are working or not.
String testScript = "function simpleJavascriptFunction() {" +
" this line has syntax error." +
"}" +
"simpleJavascriptFunction();";
//-- Compile the test script.
Script compiledScript = Context.getCurrentContext().compileString(testScript, "My Test Script", 2, null);
//-- Execute the test script.
compiledScript.exec(Context.getCurrentContext(), anyJavascriptScope);
В приведенном выше коде, число стартовая линия устанавливается в 2 (третий параметр вызова compileString()). Когда это будет выполнено, Rhino выкинет RhinoException, у которого свойство lineNumber будет установлено в значение «3» (первая строка рассматривается как вторая строка b/c, которую мы передали 2).
Надеюсь, это поможет.
На самом деле, я думаю, что я за, невозможно. Я не на самом деле вызываю скрипт, но, скорее, носорог вызывает функцию на моем объекте –