Как заставить родительский метод генерировать исключение?

1

Как получить анонимный runnable чтобы заставить родительский метод runnable исключение?

public boolean drive2Exit() throws Exception {
    while(true) {
        handler.postDelayed(new Runnable() {
            public void run() {
                try {
                    ...
                catch (Exception e) {
                    //drive2Exit should throw exception
                }
            }
        }, 100);
    }
}
  • 0
    Было бы полезно пометить ваш вопрос языком, который вы используете. Некоторые люди могут быть в состоянии определить это в любом случае, но многие не могут.
  • 0
    @Ourous Наше спасибо.
Показать ещё 8 комментариев
Теги:
exception
runnable

2 ответа

1

Я думаю, что вы, вероятно, лучший сервер с использованием Future:

https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Future.html

используя то, что вы можете в своем главном коде проверить результат runnable, и если он бросил исключение, вы получите исключение для обработки кода, проверяющего будущее. используйте это исключение, и я думаю, что встроенное исходное исключение решит, что бросить за пределы будущего.

0

Я не думаю, что если вы это сделаете. Когда исключение возникает в дочернем потоке и оно не попадает, дочерний поток просто умирает, если родитель не знает об этом. Я могу подумать о том, что catch Exception в дочернем элементе и поместить его в общую структуру данных, например static переменную, разделяемую между дочерними и родительскими. Родитель периодически будет опробовать эту структуру данных, если в ней есть какое-то исключение. Или вы можете реализовать шаблон проектирования Observer для уведомления main потока, если в любом из дочерних элементов есть новое исключение (т.е. Структура разделяемых данных изменяется).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню