При проверке валидатором выкидывает сообщение UNKNOWN_ERROR.
Если убрать строку Thread.currentThread().interrupt(), то валидатор отрабатывает и дает замечание по пункту 2.
"После вызова uncaughtException нужно прервать нить, которая бросила исключение" не верно.
Подскажите, пожалуйста в чем проблемма
Текст программы ниже:
package com.javarush.task.task25.task2512;
import java.util.*;
/*
Живем своим умом
*/
public class Solution implements Thread.UncaughtExceptionHandler {
@Override
public void uncaughtException (Thread t, Throwable e) {
List<String> list = new ArrayList<>();
list.add(e.toString());
Throwable e2 = e;
while (true) {
e2 = e2.getCause();
if (e2 == null) break;
else list.add(e2.toString());
}
Collections.reverse(list);
for (String s : list) System.out.println(s);
Thread.currentThread().interrupt();
}
public static void main(String[] args) {
Thread t = new Thread(new Runnable()
{
public void run(){
//System.out.println("Thread ... started");
throw new RuntimeException("ABC", new RuntimeException("DEF", new IllegalAccessException("GHI")));
}
});
t.setUncaughtExceptionHandler(new Solution());
t.start();
}
}