throwit.java: New file.

* libjava.jni/throwit.java: New file.
	* libjava.jni/throwit.c: New file.
	* libjava.jni/throwit.out: New file.

From-SVN: r32016
This commit is contained in:
Tom Tromey 2000-02-16 22:39:36 +00:00 committed by Tom Tromey
parent b32369e675
commit 5b0d59b4e7
4 changed files with 68 additions and 0 deletions

View file

@ -1,3 +1,9 @@
2000-02-16 Tom Tromey <tromey@cygnus.com>
* libjava.jni/throwit.java: New file.
* libjava.jni/throwit.c: New file.
* libjava.jni/throwit.out: New file.
2000-02-15 Tom Tromey <tromey@cygnus.com>
* libjava.jni/findclass.java: New file

View file

@ -0,0 +1,25 @@
#include <stdlib.h>
#include <throwit.h>
void
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);
}
}

View file

@ -0,0 +1,33 @@
// Test to see if throw works.
public class throwit
{
static
{
System.loadLibrary ("throwit");
}
public static native void throwit (String name, boolean is_new);
public static void main (String[] args)
{
try
{
throwit ("java/lang/UnknownError", false);
}
catch (Throwable x)
{
System.out.println (x.getClass ());
System.out.println (x.getMessage ());
}
try
{
throwit ("java/lang/Throwable", true);
}
catch (Throwable x)
{
System.out.println (x.getClass ());
System.out.println (x.getMessage ());
}
}
}

View file

@ -0,0 +1,4 @@
class java.lang.UnknownError
the word is zardoz
class java.lang.Throwable
zardoz is the word