Вот сама задача В классе Solution реализуй интерфейс UncaughtExceptionHandler, который должен: 1. прервать нить, которая бросила исключение. 2. вывести в консоль стек исключений, начиная с самого вложенного. Пример исключения: new Exception("ABC", new RuntimeException("DEF", new IllegalAccessException("GHI"))) Пример вывода: java.lang.IllegalAccessException: GHI java.lang.RuntimeException: DEF java.lang.Exception: ABC И код
public class Solution implements Thread.UncaughtExceptionHandler {

    @Override
    public void uncaughtException(Thread t, Throwable e) {
    }

    public static void main(String[] args) {
    }
}
Вопрос, что нужно почитать, чтоб решать такие задачи? Явно просто теорию не хватает ведь знать? Очень много таких задач, где изрядно нужно написать, такой код, который после прочтения теории в голову не придёт.