#280 Exception in a Separate Thread

Companies:
Digitalleague
Themes:
JavaExceptionsConcurrencyCode Review

Why does the catch block not execute?

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));
        }
    }
}

Question review

Mentor
Answer as you would in a real interview. I’ll ask follow-up questions, then compare your answer with the reference answer and show your accuracy as a %.
Sign in to start the dialogue The mentor keeps the context of the current question and your previous messages.
Sign in