Файл: 08 18 28 39 06 38 20 24 31 32 ! 04 10 15 17 37 21 не 01 40 что такое исключение Для чего они нужны Расскажи про иерархию исключений.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 18.03.2024
Просмотров: 29
Скачиваний: 0
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
25.Какое правило должно соблюдаться при использовании нескольких блоков catch (с одним try)? – от меньшего к большему. Первыми должны ловиться наименьшие в иерархии исключения. Иначе будут «недостижимые» исключения, которые никогда не будут выполнены программой.
26.Какое правило должно соблюдаться при попытке поймать несколько исключений в одном catch? – если мы ловим несколько исключений, одно из которых является родителем другого, то мы должны оставить только родителя, иначе компилятор будет ругаться. Исключения прописываются через разделитель |. Переменная объекта ex (Exception ex) является final
27.Зачем создавать свой класс и наследовать его от Exception? – для создания СОБСТВЕННЫХ проверяемых исключительных ситуаций, которые не предусмотрены JVM или компилятором и последующей обработки этих ситуаций
28.Что такое ошибка, а что такое исключительная ситуация? – исключительная ситуация – ситуация которую мы можем предсказать и обработать. Ошибка возникает на уровне JVM и не может быть обработана программистом (закончилась память в компьютере или переполнен стек – и взять её неоткуда, поэтому и обрабатывать смысла нет)
29.Что нужно делать программисту, если в коде происходит деление на ноль? – это ошибка кода, которую программист должен убрать. Или убрать деление на 0 или добавить проверочное условие.
30.От каких классов Throwable и его подклассов нельзя наследоваться? – технически от класса Error наследоваться не принято, т.к. это ошибки JVM (серьезные ошибки, которые программист итак обработать не может)
31.Какую информацию можно получить из StackTraceElement? – актуальную. информация о текущем состоянии «стека вызовов функций» Когда одна функция вызывает другую, Java-машина помещает в этот стек новый элемент StackTraceElement. Когда функция завершается этот элемент удаляется из стека.
32.Можно ли так написать try { throw new Object(); }? – это будет ошибкой, т.к. Object не является исключением, хотя и является родителем Throwable. Вся работа с исключениями начинается с класса Throwable
+33.Какое назначение класса Throwable? - Класс Throwable есть базовым для всех стандартных классов исключений Java. Этот класс предоставляет ряд методов, которые можно использовать или переопределять в собственных классах обработки исключений. Эти классы должны быть унаследованы от класса Exception, который унаследован от класса Throwable.
34.Что происходит если не обработать исключение? - Если не было предпринято дополнительных действий, то поток, в котором было выброшено и не обработано исключение, остановится, и распечатает стектрейс в вывод System
35.Что такое подавленные исключения? - Подавленные исключения -это дополнительные исключения, которые возникают в операторе try-with-resources ( введенном в Java 7 ) при закрытии ресурсов AutoCloseable. Поскольку при закрытии ресурсов AutoCloseable может возникнуть несколько исключений, дополнительные исключения присоединяются к основному исключению как подавленные исключения .
36.Как достать подавленное исключение? - Вы можете получить подавленные исключения, вызвав метод Throwable.getSuppressed(Throwable e) из исключения, созданного блоком try.
+37.Что такое ресурс в конструкции try-with-resources? - любой объект, класс которого реализует интерфейс java.lang.AutoCloseable или java.io.Closable.
+38.Что если исключение вылетело сначала в try, а потом в close в конструкции try-with-recources? Какое исключение вылетит? Что будет с другим? - Если исключение будет выброшено в основном коде и в методе close(), то приоритетнее будет первое исключение, а второе исключение будет подавлено, но информация о нем сохранится (с помощью метода Throwable.addSuppressed(Throwable exception), который вызывается неявно Java компилятором
+39.Когда происходит закрытие ресурса в конструкции try-with-resources если в try возникло исключение: до перехода в catch или после того как catch отработает? – сначала вызывается метод close(), а потом уже обрабатывает исключение (catch);
-40.Механизм обработки исключений:
1. Создание объекта-исключения.2. Заполнение stack trace'а этого исключения
3. Раскрутка стека в поисках нужного обработчика