1// Copyright 2014 The Bazel Authors. All rights reserved. 2// 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.common.options; 16 17/** 18 * An exception that's thrown when the {@link OptionsParser} fails. 19 * 20 * @see OptionsParser#parse(OptionPriority,String,java.util.List) 21 */ 22public class OptionsParsingException extends Exception { 23 private final String invalidArgument; 24 25 public OptionsParsingException(String message) { 26 this(message, (String) null); 27 } 28 29 public OptionsParsingException(String message, String argument) { 30 super(message); 31 this.invalidArgument = argument; 32 } 33 34 public OptionsParsingException(String message, Throwable throwable) { 35 this(message, null, throwable); 36 } 37 38 public OptionsParsingException(String message, String argument, Throwable throwable) { 39 super(message, throwable); 40 this.invalidArgument = argument; 41 } 42 43 /** 44 * Gets the name of the invalid argument or {@code null} if the exception 45 * can not determine the exact invalid arguments 46 */ 47 public String getInvalidArgument() { 48 return invalidArgument; 49 } 50} 51