Решил задачу. Нам надо было вывести все uncheked исключения в консоль. Валидатор выводит в консоль только исключение первого метода( NullPointerException) и на этом завершает работу, а остальные он не считывает? и если надо было вывести все исключения, то почему засчитали ответ?
package com.javarush.task.task09.task0917;
/*
Перехват unchecked-исключений
*/
public class Solution {
public static void main(String[] args) {
handleExceptions(new Solution());
}
public static void handleExceptions(Solution obj) {
try{
obj.method1();
obj.method2();
obj.method3();
}catch(RuntimeException e)
{
printStack(e);
}
}
public static void printStack(Throwable throwable) {
System.out.println(throwable);
for (StackTraceElement element : throwable.getStackTrace()) {
System.out.println(element);
}
}
public void method1() {
throw new NullPointerException();
}
public void method2() {
throw new IndexOutOfBoundsException();
}
public void method3() {
throw new NumberFormatException();
}
}
Нурлан
16 уровень
Может кто объяснить?
Обсуждается
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Евгений Хлебников
29 декабря 2020, 12:53
Вот такой вариант:
+2
Сергей ШершавинExpert
26 марта 2020, 08:32
При ловле исключения управление передаётся в кэтч, где вызывается метод, печатающий соответствующий исключению стек-трейс. После чего программа завершается, потому что после блока кэтч у вас ничего не идёт, а вернуться назад в трай программа не может. Поставьте на первое место любой другой метод и убедитесь, что они тоже ловятся при случае.
+1
IceBergMaster
26 марта 2020, 08:21
Метод обрабатывает все uncheked исключения? - да, он же не должен их просто так выводить.
+1