4

Android(JAVA)側でスローされた例外をキャッチし、ネイティブ側で処理する方法を探しています。

私がする必要があるのは、例外のタイプを検出し、それに応じて処理することです。

それがどのように行われるかについて何か考えはありますか?

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 に答える