#280 Исключение в отдельном потоке
Почему не отработает catch-блок?
public class Main {
public static class WrongValuePresentedException extends RuntimeException {};
public static final Integer wrongNumber = 25;
public static void check(Integer a) {
if (wrongNumber.equals(a)) {
throw new WrongValuePresentedException();
}
}
public static void main(String[] args) throws InterruptedException {
final var rndGeneratedValues = new ArrayList<Integer>();
var random = new Random();
random.ints(200, 0, 50).forEach(rndGeneratedValues::add);
try {
var checker = new Thread() {
public void run() {
rndGeneratedValues.forEach(ExerciseB2::check);
}
};
checker.start();
} catch (WrongValuePresentedException e) {
System.out.println(String.format("%s found", wrongNumber));
}
}
}
Разбор вопроса
Войди, чтобы начать диалог
Ментор ведёт диалог по текущему вопросу и учитывает предыдущие сообщения.
Войти
Доступно с Premium
Это лишь одно из решений, доступных с Premium. А ещё:
- 250+ продвинутых лекций
- 1300+ практических заданий
- 500+ решений задач с реальных собеседований
- Именные сертификаты Java Hub
- Расширенный доступ к AI-ментору