| #include <stdlib.h> |
| #include <throwit.h> |
| |
| JNIEXPORT void JNICALL |
| Java_throwit_throwit (JNIEnv *env, jclass klass, jstring name, |
| jboolean is_new) |
| { |
| const char *buf = (*env)->GetStringUTFChars (env, name, NULL); |
| jclass k = (*env)->FindClass (env, buf); |
| (*env)->ReleaseStringUTFChars (env, name, buf); |
| |
| if (k == NULL || (*env)->ExceptionCheck (env)) |
| return; |
| |
| if (is_new) |
| (*env)->ThrowNew (env, k, "the word is zardoz"); |
| else |
| { |
| jmethodID id = (*env)->GetMethodID (env, k, "<init>", |
| "(Ljava.lang.String;)V"); |
| jstring z = (*env)->NewStringUTF (env, "zardoz is the word"); |
| jobject obj = (*env)->NewObject (env, k, id, z); |
| (*env)->Throw (env, obj); |
| } |
| } |