2011-10-25 5 views
6

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では使用できません。

+0

['Throwable.getCause()'](http://download.oracle.com/javase/7/docs/api/java/lang/Throwable.html#getCause%28%29)はあなたに何もしません頼んでいる? –

+0

Javaレベルで発生するScriptExceptionでは、内部的にRhinoによってWrappedExceptionが使用されます。 _However_、スクリプト例外に設定された "原因"はそれ自体です。ラップされた例外を取得し、Javaレベルの例外がどこで発生したかを確認する方法はありません。非JSR rhinoクラスに対するリフレクションを使用することさえできません。これは深刻なバグであるようです。 – pdinklag

答えて

0

あなたはe.getCause()を試しましたか?

+0

はい、JavaScriptでは停止しますが、Javaコードの原因は含まれません –

関連する問題