1 /* 2 * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 package java.util; 27 28 /** 29 * Unchecked exception thrown when the argument corresponding to the format 30 * specifier is of an incompatible type. 31 * 32 * <p> Unless otherwise specified, passing a {@code null} argument to any 33 * method or constructor in this class will cause a {@link 34 * NullPointerException} to be thrown. 35 * 36 * @since 1.5 37 */ 38 public class IllegalFormatConversionException extends IllegalFormatException { 39 40 private static final long serialVersionUID = 17000126L; 41 42 private char c; 43 private Class<?> arg; 44 45 /** 46 * Constructs an instance of this class with the mismatched conversion and 47 * the corresponding argument class. 48 * 49 * @param c 50 * Inapplicable conversion 51 * 52 * @param arg 53 * Class of the mismatched argument 54 */ IllegalFormatConversionException(char c, Class<?> arg)55 public IllegalFormatConversionException(char c, Class<?> arg) { 56 if (arg == null) 57 throw new NullPointerException(); 58 this.c = c; 59 this.arg = arg; 60 } 61 62 /** 63 * Returns the inapplicable conversion. 64 * 65 * @return The inapplicable conversion 66 */ getConversion()67 public char getConversion() { 68 return c; 69 } 70 71 /** 72 * Returns the class of the mismatched argument. 73 * 74 * @return The class of the mismatched argument 75 */ getArgumentClass()76 public Class<?> getArgumentClass() { 77 return arg; 78 } 79 80 // javadoc inherited from Throwable.java getMessage()81 public String getMessage() { 82 return String.format("%c != %s", c, arg.getName()); 83 } 84 } 85