⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 handleerror.c

📁 初期JAVA学习非常有用的资料。帮助深入了解API。特别是Applet。
💻 C
字号:
#include <stdio.h>#include <string.h>#include <stdlib.h>#include "MyTest.h"jint Java_MyTest_handleError(JNIEnv *env, jobject obj, jint ival) {	jint ret, testInt;	jclass myClass, cls;	jfieldID fld, fld2, fld3;	jdouble retDbl;	jfloat retFlt;	jmethodID mid;	jstring msg;	jobject eobj;	ret = 0;	myClass = (*env)->GetObjectClass(env, obj);	if (myClass == 0) return 1;		// get fieldID	fld = (*env)->GetFieldID(env, myClass, "myInt","I");	if ((*env)->ExceptionOccurred(env)) {		printf("Caught exception.\n");		return 2;	}	// get field value	ret =  (*env)->GetIntField(env, obj, fld);	if ((*env)->ExceptionOccurred(env)) return 3;	printf("Current value of myInt: %d\n", ret);	ret = ival;	//check that new value is within limits	if (ival <0 || ival > 99) {	   cls = (*env)->FindClass(env, "java/lang/IllegalArgumentException");	   if (cls == 0) return;	   mid = (*env)->GetMethodID(env, cls, "<init>", "(Ljava/lang/String;)V");	   if ((*env)->ExceptionOccurred(env)) return;	   printf("Construct new string msg \n");	   msg = (*env)->NewStringUTF(env, "Special error");	   if ((*env)->ExceptionOccurred(env)) return;	   printf("Construct new object.\n");	   eobj = (*env)->NewObject(env, cls, mid, msg);	   if ((*env)->ExceptionOccurred(env)) return;	   (*env)->Throw(env, eobj);	}	    	(*env)->SetIntField(env, obj, fld, ret);	if ((*env)->ExceptionOccurred(env)) return 4;	printf("New value of myInt: %d\n", ret);		return(0);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -