/*
 * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org> and others
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Distribution License v. 1.0 which is available at
 * https://www.eclipse.org/org/documents/edl-v10.php.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

package org.eclipse.jgit.errors;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

import org.eclipse.jgit.internal.JGitText;

An exception detailing multiple reasons for failure.
/** * An exception detailing multiple reasons for failure. */
public class CompoundException extends Exception { private static final long serialVersionUID = 1L; private static String format(Collection<Throwable> causes) { final StringBuilder msg = new StringBuilder(); msg.append(JGitText.get().failureDueToOneOfTheFollowing); for (Throwable c : causes) { msg.append(" "); //$NON-NLS-1$ msg.append(c.getMessage()); msg.append("\n"); //$NON-NLS-1$ } return msg.toString(); } private final List<Throwable> causeList;
Constructs an exception detailing many potential reasons for failure.
Params:
  • why – Two or more exceptions that may have been the problem.
/** * Constructs an exception detailing many potential reasons for failure. * * @param why * Two or more exceptions that may have been the problem. */
public CompoundException(Collection<Throwable> why) { super(format(why)); causeList = Collections.unmodifiableList(new ArrayList<>(why)); }
Get the complete list of reasons why this failure happened.
Returns:unmodifiable collection of all possible reasons.
/** * Get the complete list of reasons why this failure happened. * * @return unmodifiable collection of all possible reasons. */
public List<Throwable> getAllCauses() { return causeList; } }