Created
November 9, 2018 20:33
-
-
Save Shtaba09/50906a7a6ea0cff1c721edaf33039255 to your computer and use it in GitHub Desktop.
вывод стека ошибок с самого конца к началу
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) { | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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. Сообщения должны выводиться в формате "exception class: exception message". | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment