Throw an Exception (from JNI code)Tag(s): JNI
Define the following prototype in the header file
JNIEXPORT jdouble JNICALL Java_JavaHowTo_divide (JNIEnv *, jobject, jdouble, jdouble);
JNIEXPORT jdouble JNICALL Java_JavaHowTo_divide
(JNIEnv *env, jobject obj, jdouble d1, jdouble d2) {
if (d2 == 0.0) {
jclass Exception = env->FindClass("java/lang/Exception");
env->ThrowNew(Exception,"Can't divide by zero.");
}
return d1/d2;
}
class JavaHowTo {
public native double divide(double d1, double d2);
static {
System.loadLibrary("javahowto");
}
}
public class JNIJavaHowTo {
public static void main(String[] args) {
JavaHowTo jht = new JavaHowTo();
System.out.println("division 1 : " + jht.divide(9.0, 3.0));
System.out.println("division 2 : " + jht.divide(9.0, 0.0));
}
}
mail_outline
Send comment, question or suggestion to howto@rgagnon.com
Send comment, question or suggestion to howto@rgagnon.com