我应该以哪种方式检查JNI中的异常?

时间:2014-03-25 01:49:13

标签: java java-native-interface

众所周知,JNI中的许多方法可能会导致异常,并且在导致JVM崩溃的异常之后无法调用。我们不仅可以使用ExceptionOccurred()或ExceptionCheck()来确定是否发生异常,还可以简单地检查不等于NULL或0的内容。哪种方式是最佳实践?

1 个答案:

答案 0 :(得分:1)

由于你只是要求“最佳实践”,答案非常简单:

  1. 始终在调用可能引发异常的JNI函数时调用ExceptionCheckExceptionOccurred
  2. 始终检查来自JNI函数的返回值
  3. 在每次JNI呼叫后呼叫ExceptionOccurred,最好是在专用功能中,您可以获取有关异常的一些信息,以便记录,还可以拨打ExceptionClear

    使专用函数返回void,并使用JNI函数的返回值来区分正常和错误路径。