blob: 3ddc6e58e1462efb330b431647ed08d3aabdf0e4 [file] [log] [blame]
Damien Martin-Guillerezf88f4d82015-09-25 13:56:55 +00001// Copyright 2014 The Bazel Authors. All rights reserved.
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +01002//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package com.google.devtools.build.lib.shell;
16
17/**
18 * Superclass of all exceptions that may be thrown during command execution.
19 * It exists to unify them. It also provides access to the command name
20 * and arguments for the failing command.
21 */
22public class CommandException extends Exception {
23
24 private final Command command;
25
26 /** Returns the command that failed. */
27 public Command getCommand() {
28 return command;
29 }
30
31 public CommandException(Command command, final String message) {
32 super(message);
33 this.command = command;
34 }
35
36 public CommandException(Command command, final Throwable cause) {
37 super(cause);
38 this.command = command;
39 }
40
41 public CommandException(Command command, final String message,
42 final Throwable cause) {
43 super(message, cause);
44 this.command = command;
45 }
46
47 private static final long serialVersionUID = 2L;
48}