• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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