java - ネイティブJavaメソッドからC++例外をスローするとどうなりますか?

java c++ linux exception java-native-interface

SunのJVMをC++アプリケーションに埋め込むとします。 JNIを介して、Javaメソッド(独自のメソッド)を呼び出します。Javaメソッドは、共有ライブラリに実装したネイティブメソッドを呼び出します。

このネイティブメソッドがC++例外をスローするとどうなりますか?

編集:コンパイラはgcc 3.4.x、jvmはsunの1.6.20です。
答え
JNIの文献では、例外という言葉はJava例外を指すためだけに使用されているようです。ネイティブコードの予期しないイベントは、プログラミングエラーと呼ばれます。 JNIでは、JVMがプログラミングエラーをチェックする必要はありません。プログラミングエラーが発生した場合、動作は未定義です。 JVMごとに動作が異なる場合があります。

すべてのプログラミングエラーをリターンコードまたはJava例外に変換するのは、ネイティブコードの責任です。 Java例外は、ネイティブコードからすぐにはスローされません。ネイティブコードがJava呼び出し元に戻ったときにのみスローされ、保留状態になることがあります。ネイティブコードは、保留中の例外をExceptionOccurredで確認し、ExceptionClearでクリアできます。
関連記事

java - JPQLサブクエリを実行するにはどうすればよいですか?

java - Scalaでは、varargを使用するメソッドと使用しないメソッドを明確に区別するにはどうすればよいですか

java - レポートの生成-何が効果的ですか? [閉まっている]

java - java.security.KeyStoreクラスを使用してキーを保存およびロードする方法

java - ファイナライザーに「重大なパフォーマンスペナルティ」があるのはなぜですか?

java - 別のクラスも拡張している場合、クラスをObservableに拡張するにはどうすればよいですか?

java - Javaアプリケーションでメモリ使用量をプロファイルする最良の方法は?

java - 2つのインスタンス変数を同じジェネリック型に強制するにはどうすればよいですか?

java - アプリのドメインは、Facebook WebゲームのURL(https)、モバイルサイトのURL、UnityバイナリURL、サイトURLまたはセキュアページタブURLのドメインと一致する必要があります

java - Java 9モジュールにどのように名前を付ける必要がありますか?