JRE6に組み込まれているJSR-223スクリプトエンジンを使用してJavascriptを実行しています。 JavascriptはJavaコードとオブジェクトにアクセスできます。 JavaScriptから実行されるJavaコードから例外がスローされると、ScriptEngineはScriptExceptionをスローします。JSR-223を使用してScriptExceptionを発生させるJava例外にアクセスする方法
私は、Javaの例外が例外をスローする原因となったJava例外にアクセスできるようにします。
JavaScriptから、私は例外をキャッチし、例外のjavaExceptionフィールドを見ることができます:
try
{
.
}
catch (e)
{
e.javaException.printStackTrace();
}
しかし、私はJavascriptをの制御、たScriptEngineからそれらの実行のみを持っていません。 ScriptExceptionから「内部」Java例外を取得する方法はありますか?
私がRhinoを使用していた場合、RhinoExceptionはJava例外を利用できると思います。 RhinoExceptionは、JSR-223 APIでは使用できません。
['Throwable.getCause()'](http://download.oracle.com/javase/7/docs/api/java/lang/Throwable.html#getCause%28%29)はあなたに何もしません頼んでいる? –
Javaレベルで発生するScriptExceptionでは、内部的にRhinoによってWrappedExceptionが使用されます。 _However_、スクリプト例外に設定された "原因"はそれ自体です。ラップされた例外を取得し、Javaレベルの例外がどこで発生したかを確認する方法はありません。非JSR rhinoクラスに対するリフレクションを使用することさえできません。これは深刻なバグであるようです。 – pdinklag