Файл: Что такое Error В каком случае используется Error. Приведите пример Errorа. 2.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.01.2024
Просмотров: 97
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
-
Сделать проверку через условный оператор на то, что делитель является нулем и выводить пользователю сообщения об этом. -
Отлавливать исключение ArithmeticException через try catch. -
Создать собственный класс исключений.
-
Не следует делать свои классы-исключения наследниками класса Error или какого-то его подкласса. Из-за больших сложностей обработки этих исключений.
-
Можно, но только если явно привести Object к Throwable и добавить блок catch (Throwable e). И это не имеет смысла.
-
Все исключительные ситуации делятся на «проверяемые» (checked) и «непроверяемые» (unchecked) компилятором. Это свойство присуще родительскому классу Throwable и всем его наследникам, Error, Exception, RuntimeException и далее передается по наследству. Никак не видимо в исходном коде класса исключения.-
Throwable и Exception и все их наследники (за исключением наследников Error-а и RuntimeException-а) — checked -
Error и RuntimeException и все их наследники — unchecked
-
-
Checked исключения отличаются от Unchecked исключения в Java, тем что:-
Наличие\обработка Checked исключения проверяются на этапе компиляции. Наличие\обработка Unchecked исключения происходит на этапе выполнения.
-
В чём разница с точки зрения синтаксиса и идеологическая при использовании?
-
Checked исключения, это те, которые должны обрабатываться блоком catch или описываться в сигнатуре метода. Unchecked могут не обрабатываться и не быть описанными.
Какое назначение класса Throwable?
-
Класс Throwable является базовым для всех стандартных классов исключений Java. Этот класс предоставляет ряд методов, которые можно использовать или переопределять в собственных классах обработки исключений. Эти классы должны быть унаследованы от класса Exception, который унаследован от класса Throwable. Класс Exception не содержит методов.
Методы класса Throwable
-
Метод final void addSuppressed(Throwable исключение) - добавляет заданное исключение в список подавляемых исключений. Этот список связывается с вызывающим (данным) исключением. Метод используется для применения в операторе try с ресурсами. -
Метод Throwable fillInStackTrace() - возвращает объект класса Throwable, содержащий полную трассировку стека. Этот объект может быть сгенерирован повторно. -
Метод Throwable getCause() - возвращает исключение, лежащее в основе текущего исключения. Метод возвращает null в случае, если такое исключение отсутствует. Этот метод используется при создании цепочек исключений – он вызывает исключение, вызывающее текущее исключение. -
Метод String getLocalizedMessage() - возвращает локализованное описание исключения. -
Метод String getMessage() - возвращает описание исключения. -
Метод StackTraceElement[] getStackTrace() - возвращает массив, содержащий поэлементную трассировку стека в виде объектов класса StackTraceElement. -
Метод final Throwable[] getSuppressed() - получает подавленные исключения, связанные с вызывающим исключением, и возвращает массив, который содержит результат. Подавленные исключения генерируются в операторе try с ресурсами. -
Метод Throwable initCause(Throwable причина_исключения) - связывает входной параметр причина_исключения с вызывающим исключением, указывая его как причину этого вызывающего исключения. Возвращает ссылку на исключение. Метод используется при создании цепочек исключений. -
Метод printStackTrace() - выводит трассировку стека. -
Метод printStackTrace() - Метод направляет трассировку стека в заданный поток_вывода. имеет еще две перегруженных реализации: -
void printStackTrace(PrintStream поток_вывода) -
void printStackTrace(PrintWriter поток_вывода) -
Метод void setStackTrace(StackTraceElement элементы[]) - устанавливает трассировку стека для заданных элементов. -
Метод String toString() - возвращает объект типа String содержащий описание исключения. Этот метод можно вызвать из метода println() при выводе объекта типа Throwable.
Что происходит если не обработать исключение?
-
Если не обработать проверяемые исключения или не передать вызывающему методу, то программу нельзя будет скомпилировать. -
Непроверяемые компилятором исключения должен контролировать сам программист. В случае необработанной ошибки программа завершит свое выполнение.
Что такое подавленные исключения?
-
Подавленное исключение — это исключение, которое выбрасывается, но каким-то образом игнорируется. Распространенный сценарий для этого в Java — это когда блок finally создает исключение, а любое исключение, первоначально возникшее в блоке try , подавляется.
-
Получить доступ к подавленному исключению возможно, например, если использовать метод addSuppressed() в блоке finally и передать в качестве параметра исходное исключение из блока catch через промежуточную переменную, что бы исключение не потерялось.
Что такое ресурс в конструкции try-with-resources?
-
Ресурсы объявляются в скобках сразу после try, а компилятор уже сам неявно создаёт секцию finally. -
Ресурсом называется объект, являющийся экземпляром класса, который реализует интерфейс java.lang.AutoCloseable или java.io.Closable -
Можно указывать несколько ресурсов разделяя их точкой с запятой. -
Закрываться эти ресурсы будут в порядке, обратном их объявлению. -
В Java 9 стало возможным использовать в try-блоке ресурсы, объявленные вне try-блока. -
Ресурс становится final и его нельзя изменить. -
При выходе из блока try-with-resources будет вызван метод close() и освобождены все ресурсы.
-
Брошенное try-блоком исключение имеет больший приоритет, чем исключения, получившиеся во время закрытия. В конструкции try-finally наоборот, исключение из finally перекроет исключение в try. -
-
Исключение в try перекроет исключение в close
-
Исключение будет подавленно, и его можно получить через метод getSuppress.
-
catch и явный finally выполняются уже после того, как закрываются ресурсы в неявном finally(ментор сказал в неявном try catch), который компилятор сам неявно создаёт.
Какие есть уровни логирования и для чего они нужны?
Для контроля объема информации и уменьшения нагрузки из-за процесса логирования создали уровни логирования. Логгер можно конфигурировать для того, чтобы игнорировать логи с уровнем ниже заданного, например логгер WARNING будет записывать SEVERE и WARNING, но будет пропускать все что ниже него INFO и ниже.
-
SEVERE (серьезные ошибки программы) -
WARNING (предупреждение) -
INFO (информационное сообщение) -
CONFIG (конфигурационные параметры)
(детальное логирование)
-
FINE (сообщение об успешной операции) -
FINER -
FINEST
-
OFF(отключить) -
ALL(записывать все)
Обязательно ли передавать в метод getLogger() имя класса?
-
Нет не обязательно, можно передать любой строковый параметр. Но желательно.
-
Легко проверить класс ведения журнала, так как имя журнала будет отображаться в файле журнала. Можно быстро перейти к определенному классу. -
Не нужно беспокоиться о дублировании имен журналов в сложном приложении. Имя всегда будет уникальным.
-
SEVERE (серьезные ошибки программы) -
WARNING (предупреждение) -
INFO (информационное сообщение)
-
В классе Level первым параметром идет строковое название уровня логирования, а вторым параметром int значение приоритета. У уровня info приоритет 800 у warning 900, чем больше значение, тем выше приоритет.