Я разрабатываю для повязки Myo на Java, используя JNI для вызова функций в C ++ API Myo. Я понял, что создание нового Hub
, когда Myo Connect не работает, вызывает сбой JVM, даже если у меня есть операторы catch вокруг него:
try {
Hub *hub = new Hub(appID);
//...
}
catch (invalid_argument &e) {
jclass exceptionClass = env->FindClass("java/lang/IllegalArgumentException");
env->ThrowNew(exceptionClass, e.what());
}
catch (runtime_error &e) {
jclass exceptionClass = env->FindClass("com/thalmic/myo/MyoException");
env->ThrowNew(exceptionClass, e.what());
}
catch (...) {
jclass exceptionClass = env->FindClass("java/lang/Exception");
env->ThrowNew(exceptionClass, "Unexpected error");
}
Тем не менее, Myo SDK Reference ясно говорит, что
Создает исключение типа std::runtime_error
, если инициализация концентратора по какой-либо причине не удалась, , как правило, потому что Myo Connect не работает и, следовательно, соединение не может быть установлено.
Это поведение предназначено или я делаю что-то не так?