Файл: Что такое Error В каком случае используется Error. Приведите пример Errorа. 2.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.01.2024
Просмотров: 96
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Оглавление
Что такое исключения 2
Что такое Error? В каком случае используется Error. Приведите пример Error’а. 2
Можно/нужно ли обрабатывать ошибки jvm? 3
О чем говорит ключевое слово throws? 3
В чем особенность RuntimeException? 3
Может ли метод main выбросить исключение во вне и если да, то где будет происходить обработка данного исключения? 3
Чем отличаются исключения от обычных классов? 3
Все ключевые слова и всё что с ними связано. 3
Всё исключения и как генерировать различные виды исключений. 3
Как создать, выбросить, поймать свое исключение? 4
Где возможно вызывать исключения? 4
Можно ли обрабатывать разные исключения в одном блоке catch? 4
Обязателен ли блок finally? Конструкция try-finally 4
А catch? 4
Когда будет выполнен finally? 4
Когда не будет выполнен (4 случая)? 5
Разница try catch и if 5
Какой return вернется из try или finaly? 5
Что если в конструкции try finally вылетело исключение сначала в try а потом в finally? 5
Какое исключение вылетит? 5
Что будет с другим? 5
Расскажи про информацию, которая находится внутри исключения? 5
Как с ней работать? Что возвращает getStackTrace()? 6
Какую информацию можно получить из StackTraceElement? 6
Что такое Стек? 6
Какое правило должно соблюдаться при использовании нескольких блоков catch (с одним try)? 6
Какое правило должно соблюдаться при попытке поймать несколько исключений в одном catch? 6
Зачем создавать свой класс и наследовать его от Exception? 6
Что такое ошибка, а что такое исключительная ситуация? 7
Что нужно делать программисту, если в коде происходит деление на ноль? 7
От каких классов Throwable и его подклассов нельзя наследоваться? 7
Можно ли так написать try { throw new Object(); }? 7
В чём разница между проверяемыми исключениями и непроверяемыми? 7
В чём разница с точки зрения синтаксиса и идеологическая при использовании? 8
Какое назначение класса Throwable? 8
Методы класса Throwable 8
Что происходит если не обработать исключение? 9
Что такое подавленные исключения? 9
Как достать подавленное исключение? 9
Что такое ресурс в конструкции try-with-resources? 9
Что если исключение вылетело сначала в try, а потом в close в конструкции try-with-recources? 10
Какое исключение вылетит? 10
Что будет с другим? 10
Когда происходит закрытие ресурса в конструкции try-with-resources если в try возникло исключение: до перехода в catch или после того, как catch отработает? 10
Какие есть уровни логирования и для чего они нужны? 10
Обязательно ли передавать в метод getLogger() имя класса? 10
Почему так принято? 11
Сообщения каких уровней мы увидим, задав уровень INFO? 11
Как Java понимает какой уровень главнее при установке .setLevel(). 11
Что такое исключения
Ошибки (Errors) представляют собой более серьёзные проблемы, которые, согласно спецификации Java, не следует пытаться обрабатывать в собственной программе, поскольку они связаны с проблемами уровня JVM. Например, исключения такого рода возникают, если закончилась память, доступная виртуальной машине.
Как пример — OutOfMemoryError.
Можно/нужно ли обрабатывать ошибки jvm?
Чем отличаются исключения от обычных классов?
Не совсем понятен вопрос.
Все ключевые слова и всё что с ними связано.
Всё исключения и как генерировать различные виды исключений.
Когда будет выполнен finally?
Какой return вернется из try или finaly?
Расскажи про информацию, которая находится внутри исключения?
Какую информацию можно получить из StackTraceElement?
Что такое Стек?
Какое правило должно соблюдаться при использовании нескольких блоков catch (с одним try)?
Зачем создавать свой класс и наследовать его от Exception?
Что нужно делать программисту, если в коде происходит деление на ноль?
Что такое исключения 2
Что такое Error? В каком случае используется Error. Приведите пример Error’а. 2
Можно/нужно ли обрабатывать ошибки jvm? 3
О чем говорит ключевое слово throws? 3
В чем особенность RuntimeException? 3
Может ли метод main выбросить исключение во вне и если да, то где будет происходить обработка данного исключения? 3
Чем отличаются исключения от обычных классов? 3
Все ключевые слова и всё что с ними связано. 3
Всё исключения и как генерировать различные виды исключений. 3
Как создать, выбросить, поймать свое исключение? 4
Где возможно вызывать исключения? 4
Можно ли обрабатывать разные исключения в одном блоке catch? 4
Обязателен ли блок finally? Конструкция try-finally 4
А catch? 4
Когда будет выполнен finally? 4
Когда не будет выполнен (4 случая)? 5
Разница try catch и if 5
Какой return вернется из try или finaly? 5
Что если в конструкции try finally вылетело исключение сначала в try а потом в finally? 5
Какое исключение вылетит? 5
Что будет с другим? 5
Расскажи про информацию, которая находится внутри исключения? 5
Как с ней работать? Что возвращает getStackTrace()? 6
Какую информацию можно получить из StackTraceElement? 6
Что такое Стек? 6
Какое правило должно соблюдаться при использовании нескольких блоков catch (с одним try)? 6
Какое правило должно соблюдаться при попытке поймать несколько исключений в одном catch? 6
Зачем создавать свой класс и наследовать его от Exception? 6
Что такое ошибка, а что такое исключительная ситуация? 7
Что нужно делать программисту, если в коде происходит деление на ноль? 7
От каких классов Throwable и его подклассов нельзя наследоваться? 7
Можно ли так написать try { throw new Object(); }? 7
В чём разница между проверяемыми исключениями и непроверяемыми? 7
В чём разница с точки зрения синтаксиса и идеологическая при использовании? 8
Какое назначение класса Throwable? 8
Методы класса Throwable 8
Что происходит если не обработать исключение? 9
Что такое подавленные исключения? 9
Как достать подавленное исключение? 9
Что такое ресурс в конструкции try-with-resources? 9
Что если исключение вылетело сначала в try, а потом в close в конструкции try-with-recources? 10
Какое исключение вылетит? 10
Что будет с другим? 10
Когда происходит закрытие ресурса в конструкции try-with-resources если в try возникло исключение: до перехода в catch или после того, как catch отработает? 10
Какие есть уровни логирования и для чего они нужны? 10
Обязательно ли передавать в метод getLogger() имя класса? 10
Почему так принято? 11
Сообщения каких уровней мы увидим, задав уровень INFO? 11
Как Java понимает какой уровень главнее при установке .setLevel(). 11
Что такое исключения
-
Исключение — это проблема (ошибка), возникающая во время выполнения программы. Исключения могут возникать во многих случаях, например:-
Пользователь ввел некорректные данные. -
Файл, к которому обращается программа, не найден. -
Сетевое соединение с сервером было утеряно во время передачи данных. И т.д.
-
-
Все исключения в Java являются объектами. Поэтому они могут порождаться не только автоматически при возникновении исключительной ситуации, но и создаваться самим разработчиком.
Ошибки (Errors) представляют собой более серьёзные проблемы, которые, согласно спецификации Java, не следует пытаться обрабатывать в собственной программе, поскольку они связаны с проблемами уровня JVM. Например, исключения такого рода возникают, если закончилась память, доступная виртуальной машине.
Как пример — OutOfMemoryError.
Можно/нужно ли обрабатывать ошибки jvm?
-
Обрабатывать можно, но делать этого не стоит. Разработчику не предоставлены инструменты для обработки ошибок системы и виртуальной машины.
-
throws — ключевое слово, которое прописывается в сигнатуре метода, и обозначающее что метод потенциально может выбросить исключение с указанным типом.
-
public class RuntimeException extends Exception — базовый класс для ошибок во время выполнения. Относится к необрабатываемым исключениям (uncatched\unchecked). Как сказано в описании класса — это суперкласс, исключения которого могут быть выброшены во время нормальной работы JVM.
-
Может и оно будет передано в виртуальную машину Java (JVM).
Чем отличаются исключения от обычных классов?
Не совсем понятен вопрос.
-
Все исключения наследуются от класса Throwable.
Все ключевые слова и всё что с ними связано.
-
try — данное ключевое слово используется для отметки начала блока кода, который потенциально может привести к ошибке. -
catch — ключевое слово для отметки начала блока кода, предназначенного для перехвата и обработки исключений. -
finally — ключевое слово для отметки начала блока кода, которой является дополнительным. Этот блок помещается после последнего блока ‘catch’. Управление обычно передаётся в блок ‘finally’ в любом случае. -
throw — служит для генерации исключений. -
throws — ключевое слово, которое прописывается в сигнатуре метода, и обозначающее что метод потенциально может выбросить исключение с указанным типом.
Всё исключения и как генерировать различные виды исключений.
-
Чтобы сгенерировать исключение используется ключевое слово throw. Как и любой объект в Java, исключения создаются с помощью new. -
Есть два стандартных конструктора для всех исключений: первый - конструктор по умолчанию. Второй принимает строковый аргумент, в него можно поместить подходящую информацию в исключение. -
Так же практически у каждого класса исключения есть конструктор, принимающий в качестве параметра Throwable – причину исключительной ситуации. Когда одно исключение становится причиной другого, этот конструктор можно использовать для передачи цепочки исключений (exception chaining). Если же такого конструктора нет, то у Throwable есть метод initCause(Throwable), который можно вызвать один раз, и передать ему исключение-причину.
-
Необходимо создать класс и унаследоваться от базового класса требуемого типа исключений (например, от Exception или RuntimeException). Руководствоваться нужно определением типа исключения. В зависимости от того, что необходимо обрабатывать. -
В конструкторе класса своего исключения можно передать в конструктор базового класса исключения (например Exception) сообщение об ошибке используя ключевое слово super(message). -
Что бы в дальнейшем использовать свое исключение, нужно воспользоваться ключевым словом throws с названием исключения в строке объявления метода после скобок с параметрами. И сгенерировать исключение с помощью оператора throw: throw new имя исключения, внутри метода. -
Поймать исключение можно через try catch, указывав в блоке catch имя исключения.
-
В любом месте кода с помощью throw new Exception();.
-
В Java 7 стала доступна новая конструкция, с помощью которой можно перехватывать несколько исключений одним блоком catch указав через знак «|» необходимые исключения: catch( IOException | SQLException ex )
-
Оператор finally не обязателен, однако каждый оператор try требует наличия либо catch, либо finally.
-
Catch обязателен ели нет finally. Такая запись допустима, если имеется связка try finally. Но же лучше иметь блок catch в котором будет обрабатываться необходимое исключение.
Когда будет выполнен finally?
-
Код в блоке finally будет выполнен всегда. За исключение нескольких случаев.
-
Если вы вызываете System.exit(); -
Если сначала произойдет сбой JVM; -
Если JVM достигает бесконечного цикла (или другого не прерывающегося, не заканчивающегося оператора) в блоке try или catch; -
Если ОС принудительно завершает процесс JVM специально или из-за ошибки, например: сбой питания, аппаратная ошибка итп.
-
Исключения позволяют сделать код чище и понятнее, поскольку с их помощью можно разделить выполнение действий и обработку ошибок. -
Исключения трудно игнорировать, в отличие от кодов ошибок. -
Исключения легко передаются из глубоко вложенных функций. -
Исключения могут быть, и часто являются, определяемыми пользователем типами, несущими гораздо больше информации, чем код ошибки.
Какой return вернется из try или finaly?
-
Если коротко, то вызов return — частный случай преждевременного завершения, при этом преждевременное завершение из finally перекрывает и отбрасывает любое преждевременное завершение в блоке try. Из finally.
-
Ответ аналогичный случаю с двумя return — будет обработано в finally блоке.
-
Если было выброшено два исключения — одно в try, второе в finally, то исключение в finally «проглотит» исключение выше.
-
Если до блока finally исключение было обработано, то мы можем получить информацию об исключении в блоке try и тем самым не потерять исключение, которое впоследствии может быть перезаписано в finally другим исключением.
Расскажи про информацию, которая находится внутри исключения?
-
Причина ошибки(cause) -
Возможно, присутствует сообщение об ошибке. -
StackTrace - список методов, которые были вызваны до момента, когда в приложении произошло исключение. -
Список подавленных исключений
-
Используя метод getStackTrace() можно получить массив элементов StackTraceElement, каждый из которых содержит информацию об одном методе. Все элементы вместе и образуют stack trace.
Какую информацию можно получить из StackTraceElement?
-
StackTraceElement хранит информацию по одному элементу stack trace — т.е. по одному методу из StackTrace. Используется как массив элементов StackTrace.
Что такое Стек?
-
Стек — это структура хранения данных, в которую можно добавлять элементы и из которой можно забирать элементы. Причем брать элементы можно только с конца: сначала последний добавленный, потом — предпоследний, и т.д.
Какое правило должно соблюдаться при использовании нескольких блоков catch (с одним try)?
-
Исполняется только тот, который первым соответствует типу исключения. -
Используется правило перехвата: сначала более конкретные исключения за ними следуют менее конкретные (более общие).
-
В одном блоке нельзя ловить исключения предка и потомка(наследников класса). В этом случае, в список исключений нужно добавить исключения предка, так как он также будет ловить исключения типа потомка.
Зачем создавать свой класс и наследовать его от Exception?
-
Можно создать свой класс исключений если вам нужно более точно обрабатывать исключения. -
Свой класс исключений нужно создавать только тогда, когда уже имеющиеся классы исключений не подходят по вашу ситуацию. Иными словами: если существующие имена исключений не покрывают ваши потребности. -
Наследуясь от Exception, можно обрабатывать исключения и переопределить методы, которые использует этот класс. (Класс Exception пустой, он использует методы Throwable).
-
«Ошибка» является критическим условием, которое не может быть обработано кодом программы. -
«Исключение» — это исключительная ситуация, которая может быть обработана кодом программы. -
Например, существенная разница между ошибкой и исключением заключается в том, что ошибка вызвана нехваткой системных ресурсов, а исключение вызвано вашим кодом.
Что нужно делать программисту, если в коде происходит деление на ноль?
-
При делении на ноль целочисленное деление всегда вызывает исключение, но это не относится к числам с плавающей запятой. Для них результатом будет являться бесконечность или не число.