org.mozilla.javascript.ScriptableObject を拡張する独自のプロキシ オブジェクトを実行しています。org.mozilla.javascript.Function を拡張する独自の関数もあります。
私の望みは、ここでスローされた例外が行番号を返し、可能であれば評価されたスクリプトで例外が発生した列番号を返すことです。これは可能ですか?コンテキストとスコープにしかアクセスできません。
org.mozilla.javascript.ScriptableObject を拡張する独自のプロキシ オブジェクトを実行しています。org.mozilla.javascript.Function を拡張する独自の関数もあります。
私の望みは、ここでスローされた例外が行番号を返し、可能であれば評価されたスクリプトで例外が発生した列番号を返すことです。これは可能ですか?コンテキストとスコープにしかアクセスできません。
スクリプトから例外がスローされるたびに、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() の呼び出しの 3 番目のパラメーター) に設定されています。これが実行されると、Rhino は、値 '3' に設定された lineNumber プロパティを持つ RhinoException をスローします (最初の行は、2 を渡した b/c の 2 番目の行として扱われます)。
お役に立てれば。