code: @Override
      public void close() throws IOException {
          List<Exception> closeExceptions = new ArrayList<>(delegates.size());
          for (Writer delegate : delegates) {
              try {
                  delegate.close();
              } catch (IOException | RuntimeException closeException) {
                  closeExceptions.add(closeException);
              }
          }
          if (!closeExceptions.isEmpty()) {
              throw mergeExceptions("closing", closeExceptions);
          }
      }
docs: Delegates the close operation to all delegates and merges any occurred exceptions into a single {@link IOException}.
  
  @throws IOException in case at least one of the delegate writers threw an exception while closing.
  <em>Please note:</em> Attempts are made to close all delegates.