![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| belka139 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 24.11.2009 Репутация: нет Всего: нет |
Возник вопрос, что возвращает метод jni CallObjectMethod, если в java коде вывалилось какое-нибудь исключение? сохраняет ли он где-нибудь log вызовов?
вот код вызова java-ского метода
было выяснено, что вне зависимости от того , что будет стоять в качестве второго параметра функции CallObjectMethod, в объект jobject все равно что-то возвращается, каким образом определить с каким успехом отработала эта функция? |
|||
|
||||
| AlexeyVorotnikov |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 658 Регистрация: 18.6.2007 Где: Москва Репутация: 1 Всего: 18 |
Вот здесь написано про обработку исключений в нативном коде. В двух словах, после вызова CallObjectMethod следует вызвать ExceptionOccurred или ExceptionCheck.
-------------------- RTFM! Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification |
|||
|
||||
| belka139 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 24.11.2009 Репутация: нет Всего: нет |
попробовала использоать ExceptionOccured, но тем не менее, когда я вызываю функцию CallObjectMethod, и в качестве параметров передаю объект одного класса, а метод другого класса - никакого исключения не ловится, интересно было бы узнать почему , вот пример кода
|
|||
|
||||
| AlexeyVorotnikov |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 658 Регистрация: 18.6.2007 Где: Москва Репутация: 1 Всего: 18 |
Вообще говоря, вызывать для объекта одного класса метод от другого класса чревато
В доке по JNI говориться, что внутри JNI функций никаких проверок не производится, и ответственность за правильность параметров целиком лежит на программисте.
-------------------- RTFM! Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification |
|||
|
||||
| belka139 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 24.11.2009 Репутация: нет Всего: нет |
все эти эксперименты с вызовами несуществующих в классах методов начались тогда, когда я не смогла вызвать один из существующих методов в классе, хотя jar-ка в опциях запуска виртуальной машины была подключена, не находился класс, содержащий метод.
Я стала смотреть , а находятся ли те классы, от которых тот отнаследован, и на определеном уровне нашла место в иерархии наследования, где классы перестаюн находиться, но непонятно почему, и я экспериментальным способом стала выяснять, не импортируются ли в код класса те классы,jar-ки которых не подключены,и на этапе эекспериментов выяснила, что вне зависимости с правильными параметрами вызывается метод класса или нет, результат один и тот же, объект jobject возвращается :((( |
|||
|
||||
| belka139 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 24.11.2009 Репутация: нет Всего: нет |
А если попытать из jni вызвать конструктор класса java который является protected, jni -тоже не выдаст никакой ошибки?
|
|||
|
||||
| AlexeyVorotnikov |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 658 Регистрация: 18.6.2007 Где: Москва Репутация: 1 Всего: 18 |
Честно говоря, никогда не сталкивался с таким поведением JNI. Кстати, а что за объект тогда возвращается?
Наверное, стоит поэкспериментировать и посмотреть под отладчиком, что же там всё-таки происходит. -------------------- RTFM! Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java tools & IDE's | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |