РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
701 of 1163 menu

Метод addSuppressed

Метод addSuppressed добавляет указанное исключение в список подавленных исключений (suppressed exceptions) текущего объекта Throwable. В первый параметр мы передаем исключение, которое необходимо подавить. Этот метод часто используется в блоке finally или в конструкции try-with-resources, чтобы сохранить информацию об ошибке, возникшей при закрытии ресурса, не перекрывая основное исключение.

Подавленные исключения доступны через метод getSuppressed, который возвращает массив типа Throwable[].

Синтаксис

throwable.addSuppressed(exception)

Пример

Давайте создадим основное исключение и добавим к нему подавленное исключение, а затем выведем информацию о них:

public class Main { public static void main(String[] args) { Exception mainEx = new Exception("Main error"); Exception suppressedEx = new Exception("Suppressed error"); mainEx.addSuppressed(suppressedEx); System.out.println("Main: " + mainEx.getMessage()); for (Throwable t : mainEx.getSuppressed()) { System.out.println("Suppressed: " + t.getMessage()); } } }

Результат выполнения кода:

"Main: Main error" "Suppressed: Suppressed error"

Пример

Давайте рассмотрим практический пример с использованием try-with-resources, где метод addSuppressed автоматически вызывается при закрытии ресурса:

public class Main { static class Resource implements AutoCloseable { public void close() throws Exception { throw new Exception("Error closing resource"); } } public static void main(String[] args) { try (Resource res = new Resource()) { throw new Exception("Main error"); } catch (Exception e) { System.out.println("Caught: " + e.getMessage()); for (Throwable t : e.getSuppressed()) { System.out.println("Suppressed: " + t.getMessage()); } } } }

Результат выполнения кода:

"Caught: Main error" "Suppressed: Error closing resource"

Смотрите также

  • класс Throwable,
    который является базовым для всех ошибок
  • метод getCause,
    который возвращает причину исключения
  • метод printStackTrace,
    который выводит стек вызовов исключения
  • конструкция try-with-resources,
    которая автоматически управляет ресурсами
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить