Normalde, Java derleyici, atılan tüm denetlenen istisnaların atlatma belirtiminde olduğunu doğrular. Yerel bir işlev, işlev belirtiminde olmayan java işaretli bir istisna atarken özel bir şey olursa veya çalışma zamanında atlatma belirtimi listesi göz ardı ediliyor mu?Java kontrol edilmiş istisna fonksiyonun özellik belirtiminde değil mi?
C++
void function(JNIEnv * env, jclass jc) {
jclass newExcCls = env->FindClass("java/lang/NullPointerException");
env->ThrowNew(newExcCls, "ERROR");
}
C++ işlev adı muhtemelen karıştırılmış olur (
public class Tester {
static {
System.loadLibrary("MyLibrary");
}
private static native void function();
public static void main(String [ ] args) {
try {
function();
} catch(Exception e) { //is it caught? Or what happens?
e.printStackTrace();
}
}
}
Java
. Ayrıca loadlibrary deneyin catch olmalıdır. Umurumda değil, ben inanmıyorum Bu sorunla ilgili olabilir. Kodda başka hatalar da olabilir, ancak bunlar büyük olasılıkla da alakalı değildir.)
Bu bir yinelenen olmadığına şaşırdım. –