4

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

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

知道它是怎么做的吗?

4

1 回答 1

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();
  }
}
于 2012-10-23T18:25:31.947 回答