JNI - 捕获异常并检查其类型

时间:2012-10-23 16:41:57

标签: java android exception-handling java-native-interface

我正在寻找一种方法来捕获Android(JAVA)端引发的异常并在Native端处理它。

我需要做的是检测异常的类型并相应地处理它。

知道它是如何完成的吗?

1 个答案:

答案 0 :(得分:5)

我明白了......

if(jEnv->ExceptionCheck() == JNI_TRUE ) {
  __android_log_write(ANDROID_LOG_DEBUG, "JNI", "HAS EXCEPTION"); 
  jthrowable exceptionObj = jEnv->ExceptionOccurred();

  jclass exceptionClass = cocos2d::JniHelper::getClassID("com/companyName/example/exceptions/MyException", jEnv);
  if (jEnv->IsInstanceOf(exceptionObj, exceptionClass)) {
    __android_log_write(ANDROID_LOG_DEBUG, "JNI", "Cought MyException!"); 

    throw MyException();
  }
}