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 15 package com.google.devtools.common.options; 16 17 /** 18 * An exception that's thrown when the {@link OptionsParser} fails. 19 * 20 * @see OptionsParser#parse(OptionPriority.PriorityCategory,String,java.util.List) 21 */ 22 public class OptionsParsingException extends Exception { 23 private final String invalidArgument; 24 OptionsParsingException(String message)25 public OptionsParsingException(String message) { 26 this(message, (String) null); 27 } 28 OptionsParsingException(String message, String argument)29 public OptionsParsingException(String message, String argument) { 30 super(message); 31 this.invalidArgument = argument; 32 } 33 OptionsParsingException(String message, Throwable throwable)34 public OptionsParsingException(String message, Throwable throwable) { 35 this(message, null, throwable); 36 } 37 OptionsParsingException(String message, String argument, Throwable throwable)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 */ getInvalidArgument()47 public String getInvalidArgument() { 48 return invalidArgument; 49 } 50 } 51