将ExceptionDescribe转换为字符串

Sam*_*ami 2 c++ java java-native-interface exception

我需要在JNI中将ExceptionDescribe()的输出作为字符串,这样我就可以在文件中将其写入,而不是直接在命令行上编写.有什么办法或想法怎么做?

提前致谢,

萨米

Leo*_*Leo 5

ExceptionOccurred是第一步,获取可以执行的消息和堆栈跟踪:

    jboolean isCopy = false;
    jmethodID toString = env->GetMethodID(env->FindClass("java/lang/Object"), "toString", "()Ljava/lang/String;");
    jstring s = (jstring)(*env)->CallObjectMethod(exc, toString);
    const char* utf = (*env)->GetStringUTFChars(s, &isCopy);
Run Code Online (Sandbox Code Playgroud)

  • 使用utf后,需要显式调用ReleaseStringUTFChars()来告诉JVM本机代码不再需要它。 (3认同)
  • 仅供参考,如果引发异常,您将无法调用 FindClass()。你必须先清除异常,但之后我什至不知道你是否可以得到jthrowable对象。看起来像是第 22 条军规的情况。 (2认同)