Файл: Что такое исключение Для чего они нужны.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 05.02.2024

Просмотров: 20

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
– актуальную. информация о текущем состоянии «стека вызовов функций» Когда одна функция вызывает другую, Java-машина помещает в этот стек новый элемент

StackTraceElement. Когда функция завершается этот элемент удаляется из стека.

Можно ли так написать try { throw new Object(); }? – это будет ошибкой, т.к. Object не является исключением, хотя и является родителем Throwable. Вся работа с исключениями начинается с класса Throwable

В чём разница между проверяемыми исключениями и непроверяемыми? В чём разница с точки зрения синтаксиса и идеологическая при использовании? – checked(проверяемые исключение) мы должны или обработать с помощью try/catch или пробросить дальше добавлением в сигнатуру throws. Непроверямые ни обрабатывать ни делать что-либо ещё не нужно.

Можно ловить и checked и unchecked, но ловить unchecked не нужно. Обрабатывать нужно только checked исключения. Unchecked исключения RunTimeException это больше ошибка кода (программиста), которую нужно исправить
Какое назначение класса Throwable?Класс Throwable есть базовым для всех стандартных классов исключений Java. Этот класс предоставляет ряд методов, которые можно использовать или переопределять в собственных классах обработки исключений. Эти классы должны быть унаследованы от класса Exception, который унаследован от класса Throwable 

Методы класса Throwable? –

getMessage(): Возвращает сообщение об ошибке или исключении, которое было передано в конструктор при создании объекта.

getCause(): Возвращает исключение, которое стало причиной текущего исключения.

printStackTrace(): Выводит на консоль полную трассу стека, которая содержит информацию о вызове методов до момента возникновения исключения.

getStackTrace(): Возвращает массив объектов класса StackTraceElement, который содержит информацию о вызове методов до момента возникновения исключения.

initCause(Throwable cause): Устанавливает исключение, которое стало причиной текущего исключения.

fillInStackTrace(): Обновляет трассу стека исключения, чтобы она содержала информацию о вызове всех методов до момента вызова данного метода.

getLocalizedMessage(): Возвращает локализованное сообщение об ошибке или исключении.

Что происходит если не обработать исключение?Если не было предпринято дополнительных действий, то поток, в котором было выброшено и не обработано исключение, остановится, и распечатает стектрейс в вывод System


Что такое подавленные исключения?Подавленные исключения -это дополнительные исключения, которые возникают в операторе try-with-resources ( введенном в Java 7 ) при закрытии ресурсов AutoCloseable. Поскольку при закрытии ресурсов AutoCloseable может возникнуть несколько исключений, дополнительные исключения присоединяются к 
основному исключению как подавленные исключения .


Как достать подавленное исключение?Вы можете получить подавленные исключения, вызвав метод Throwable.getSuppressed(Throwable e) из исключения, созданного блоком try.


Что такое ресурс в конструкции try-with-resources?любой объект, класс которого реализует интерфейс java.lang.AutoCloseable или java.io.Closable.

Что если исключение вылетело сначала в try, а потом в close в конструкции try-with-recources? Какое исключение вылетит? Что будет с другим?Если исключение будет выброшено в основном коде и в методе close(), то приоритетнее будет первое исключение, а второе исключение будет подавлено, но информация о нем сохранится (с помощью метода Throwable.addSuppressed(Throwable exception), который вызывается неявно Java компилятором

Когда происходит закрытие ресурса в конструкции try-with-resources если в try возникло исключение: до перехода в catch или после того как catch отработает? – сначала вызывается метод close(), а потом уже обрабатывает исключение (catch);
Чем отличается close от autoclosable?

в autoclosable не throws IOException, а расширен до Exception. ???

close и AutoCloseable - это два связанных понятия в Java, которые используются для управления ресурсами и освобождения памяти.

close - это метод, который используется для явного освобождения ресурсов, занятых объектом, например, файлов, сокетов, баз данных и т.д. Объект, который реализует интерфейс Closeable, должен иметь метод close, чтобы программист мог явно освободить ресурсы, которые объект занимает, когда он больше не нужен. Метод close должен вызываться явно программистом, когда объект больше не нужен.

AutoCloseable - это интерфейс, который используется для автоматического управления ресурсами. Он предоставляет единственный метод close(), который позволяет объекту автоматически освобождать ресурсы, когда объект больше не нужен. Это можно сделать с помощью конструкции try-with-resources. Объект, который реализует интерфейс AutoCloseable, будет автоматически закрыт при выходе из блока try.

Таким образом, close и AutoCloseable предоставляют два разных подхода к управлению ресурсами. Метод close используется для явного освобождения ресурсов, тогда как интерфейс AutoCloseable позволяет автоматически управлять ресурсами с помощью конструкции try-with-resources.