View Javadoc
1   /*
2    * Copyright (C) 2009, Google Inc.
3    * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org> and others
4    *
5    * This program and the accompanying materials are made available under the
6    * terms of the Eclipse Distribution License v. 1.0 which is available at
7    * https://www.eclipse.org/org/documents/edl-v10.php.
8    *
9    * SPDX-License-Identifier: BSD-3-Clause
10   */
11  
12  package org.eclipse.jgit.pgm;
13  
14  /**
15   * Indicates a {@link org.eclipse.jgit.pgm.TextBuiltin} implementation has
16   * failed during execution.
17   * <p>
18   * Typically the stack trace for a Die exception is not shown to the user as it
19   * may indicate a simple error condition that the end-user can fix on their own,
20   * without needing a screen of Java stack frames.
21   */
22  public class Die extends RuntimeException {
23  	private static final long serialVersionUID = 1L;
24  
25  	private boolean aborted;
26  
27  	/**
28  	 * Construct a new message explaining what has gone wrong.
29  	 *
30  	 * @param why
31  	 *            the message to show to the end-user.
32  	 */
33  	public Die(String why) {
34  		super(why);
35  	}
36  
37  	/**
38  	 * Construct a new message explaining what has gone wrong.
39  	 *
40  	 * @param why
41  	 *            the message to show to the end-user.
42  	 * @param cause
43  	 *            why the command has failed.
44  	 */
45  	public Die(String why, Throwable cause) {
46  		super(why, cause);
47  	}
48  
49  	/**
50  	 * Construct a new exception reflecting the fact that the
51  	 * command execution has been aborted before running.
52  	 *
53  	 * @param aborted boolean indicating the fact the execution has been aborted
54  	 * @since 3.4
55  	 */
56  	public Die(boolean aborted) {
57  		this(aborted, null);
58  	}
59  
60  	/**
61  	 * Construct a new exception reflecting the fact that the command execution
62  	 * has been aborted before running.
63  	 *
64  	 * @param aborted
65  	 *            boolean indicating the fact the execution has been aborted
66  	 * @param cause
67  	 *            can be null
68  	 * @since 4.2
69  	 */
70  	public Die(boolean aborted, Throwable cause) {
71  		super(cause != null ? cause.getMessage() : null, cause);
72  		this.aborted = aborted;
73  	}
74  
75  	/**
76  	 * Check if this exception should cause the execution to be aborted.
77  	 *
78  	 * @return boolean indicating that the execution should be aborted
79  	 * @since 3.4
80  	 */
81  	public boolean isAborted() {
82  		return aborted;
83  	}
84  }