Файл: Что такое исключения.docx

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

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

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

Добавлен: 29.04.2024

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

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

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Что происходит если не обработать исключение?

  • Если не обработать проверяемые исключения или не передать вызывающему методу, то программу нельзя будет скомпилировать.

  • Непроверяемые компилятором исключения должен контролировать сам программист. В случае необработанной ошибки программа завершит свое выполнение.


Что такое подавленные исключения?

  • Подавленное исключение — это исключение, которое выбрасывается, но каким-то образом игнорируется. Распространенный сценарий для этого в 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, а потом в close в конструкции try-with-recources?

  • Брошенное try-блоком исключение имеет больший приоритет, чем исключения, получившиеся во время закрытия. В конструкции try-finally наоборот, исключение из finally перекроет исключение в try.


Какое исключение вылетит?

  • Исключение в try перекроет исключение в close
Что будет с другим?

  • Исключение будет подавленно, и его можно получить через метод getSuppress.
Когда происходит закрытие ресурса в конструкции try-with-resources если в try возникло исключение: до перехода в catch или после того, как catch отработает?


  • catch и явный finally выполняются уже после того, как закрываются ресурсы в неявном finally(ментор сказал в неявном try catch), который компилятор сам неявно создаёт.


Какие есть уровни логирования и для чего они нужны?

Для контроля объема информации и уменьшения нагрузки из-за процесса логирования создали уровни логирования. Логгер можно конфигурировать для того, чтобы игнорировать логи с уровнем ниже заданного, например логгер WARNING будет записывать SEVERE и WARNING, но будет пропускать все что ниже него INFO и ниже.

    • SEVERE (серьезные ошибки программы)

    • WARNING (предупреждение)

    • INFO (информационное сообщение)

    • CONFIG (конфигурационные параметры)

(детальное логирование)

    • FINE (сообщение об успешной операции)

    • FINER

    • FINEST



    • OFF(отключить)

    • ALL(записывать все)


Обязательно ли передавать в метод getLogger() имя класса?

  • Нет не обязательно, можно передать любой строковый параметр. Но желательно.
Почему так принято?

  • Легко проверить класс ведения журнала, так как имя журнала будет отображаться в файле журнала. Можно быстро перейти к определенному классу.

  • Не нужно беспокоиться о дублировании имен журналов в сложном приложении. Имя всегда будет уникальным.
Сообщения каких уровней мы увидим, задав уровень INFO?

  • SEVERE (серьезные ошибки программы)

  • WARNING (предупреждение)

  • INFO (информационное сообщение)
Как Java понимает какой уровень главнее при установке .setLevel().

  • В классе Level первым параметром идет строковое название уровня логирования, а вторым параметром int значение приоритета. У уровня info приоритет 800 у warning 900, чем больше значение, тем выше приоритет.