Skip to content

Instantly share code, notes, and snippets.

@Shtaba09
Created November 9, 2018 20:33
Show Gist options
  • Save Shtaba09/50906a7a6ea0cff1c721edaf33039255 to your computer and use it in GitHub Desktop.
Save Shtaba09/50906a7a6ea0cff1c721edaf33039255 to your computer and use it in GitHub Desktop.
вывод стека ошибок с самого конца к началу
package com.javarush.task.task25.task2512;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/*
Живем своим умом
*/
public class Solution implements Thread.UncaughtExceptionHandler {
@Override
public void uncaughtException(Thread t, Throwable e) {
t.interrupt();
List<Throwable> thr = new ArrayList<>();
thr.add(e);
while (thr.get(thr.size()-1).getCause()!=null){
thr.add(thr.get(thr.size()-1).getCause());
}
Collections.reverse(thr);
for(Throwable s : thr){
System.out.println(s.getClass().getName()+": "+s.getMessage());
}
}
public static void main(String[] args) {
}
}
taskKey="com.javarush.task.task25.task2512"
Живем своим умом
В классе 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
Требования:
1. Класс Solution должен реализовывать интерфейс Thread.UncaughtExceptionHandler.
2. После вызова uncaughtException нужно прервать нить, которая бросила исключение.
3. Затем, вывести в консоль стек исключений, начиная с самого вложенного исключения.
4. Сообщения должны выводиться в формате &quot;exception class: exception message&quot;.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment