@pqgg7nwkd4

Как пробросить исключение JNA наверх?

Объясню вопрос кодом:
public static void main(String... args) {
        User32 user32 = Native.loadLibrary("user32", User32.class, W32APIOptions.DEFAULT_OPTIONS);
        try {
            user32.EnumChildWindows(
                    null /*hWnd, с таким аргументом выхов callback произойдет*/,
                    (hWnd, data) -> {
                        throw new RuntimeException("Test");
                    },
                    null /*data*/);
            System.out.println("Test exception is not catched :("); // Попадаем сюда
        } catch (Throwable t) {
            System.out.println("Test exception catched :)"); // А хотелось бы сюда
        }
    }

Пробовал перевыбросить исключение в Native.setCallbackExceptionHandler, но результат аналогичный.
  • Вопрос задан
  • 136 просмотров
Пригласить эксперта
Ответы на вопрос 2
@jkotkot
режим сарказма
Подозреваю, что никак. Разве что через замыкание выставить какой-нибудь флажок.
Ответ написан
Комментировать
@Tiberal
Можно попробовать вот с этим поиграться
https://docs.oracle.com/javase/7/docs/api/java/lan...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы