#280 Исключение в отдельном потоке

Компании:
Digital League
Темы:
JavaИсключенияМногопоточностьКод ревью

Почему не отработает 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));
        }
    }
}

Разбор вопроса

Ментор
Ответь как на реальном собеседовании. Я задам уточняющие вопросы, а затем сравню твой ответ с эталонным и покажу точность в %.
Войди, чтобы начать диалог Ментор ведёт диалог по текущему вопросу и учитывает предыдущие сообщения.
Войти