Das Java Native Interface ermöglicht es, Exceptions innerhalb der native Methoden zu
werfen und auch zu verarbeiten. Zusätzlich ist es jedoch möglich, Exceptions zur
Java Virtual Machine weiterzureichen. Hierbei wird der Typ jthrowable
verwendet
und im Falle einer Exception wird diese durch die Methode ExceptionOccured
zur
JVM weitergereicht. Nachfolgend ist ein Beispiel für die Verwendung des
jthrowable
-Objekts zu sehen:
// Exception-Handling jthrowable exception; jclass NewException; ... exception = env->ExceptionOccured(); if (exception) { env->ExceptionDescribe(); env->ExceptionClear(); newException = env->FindClass("java/lang/NullPointerException"); if (NewException == 0) return; // Exception wird von Java nicht unterstützt env->ThrowNew(newException, "JNI-Exception!"); \ ...