我想用一种很好、整洁的方式将以下 java 代码表示为 JNI:
try {
SomeMethod ();
}
catch (ExceptionType1 e) {
SomeAction ();
}
catch (ExceptionType2 e) {
SomeAction ();
}
catch (ExceptionType3 e) {
SomeAction ();
}
这样做是否有一个整洁的 JNI 模式?目前,我有这个:
java_class = (*env)->FindClass (env, EXCEPTION_CLASS_NAME);
if (java_class == NULL) {
*error_type_ref = ERROR_TYPE_FATAL;
*exception_code_ref = EU_StrSprintf ("Class not found: %s", EXCEPTION_CLASS_NAME);
cleanup ();
}
if ((*env)->IsInstanceOf (env, exception, java_class)) {
SomeAction ();
cleanup ();
}
当然,这样处理的每个异常都会再次发生这种情况。一定有更好的方法。有什么建议吗?我对将所有现有代码移植到 JNA 不感兴趣,所以我想要一种可以在本土实现的模式,可以这么说。