Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Надо ловить исключения.

static void callback_handler(char *s) {
int status;
JNIEnv *env;
bool isAttached = false;
status = gJavaVM->GetEnv((void **) &env, JNI_VERSION_1_4);
if(status < 0) {
LOGE("callback_handler: failed to get JNI environment, "
"assuming native thread");
status = gJavaVM->AttachCurrentThread(&env, NULL);
if(status < 0) {
LOGE("callback_handler: failed to attach "
"current thread");
return;
}
isAttached = true;
}
/* Construct a Java string */
jstring js = env->NewStringUTF(s);
jclass interfaceClass = env->GetObjectClass(gInterfaceObject);
if(!interfaceClass) {
LOGE("callback_handler: failed to get class reference");
if(isAttached) gJavaVM->DetachCurrentThread();
return;
}
/* Find the callBack method ID */
jmethodID method = env->GetStaticMethodID(
interfaceClass, "callBack", "(Ljava/lang/String;)V");
if(!method) {
LOGE("callback_handler: failed to get method ID");
if(isAttached) gJavaVM->DetachCurrentThread();
return;
}
env->CallStaticVoidMethod(interfaceClass, method, js);
if(isAttached) gJavaVM->DetachCurrentThread();
}class cExceptionHack{
protected:
int m_Data;
public:
void throwException(){
m_Data++;
};
};
cExceptionHack* Exception = NULL;
Exception->throwException();
Например, правильно — проверить существование файла и открывать его, иначе писать сообщение об ошибке (для ситуаций, когда файл может не существовать на диске, например, если мы используем данные, введенные пользователем). Неправильно — сразу пытаться открыть файл, и проверять существование файла обработчиком исключений.
Исключение — твой друг