Class InternationalizedRuntimeException

java.lang.Object
java.lang.Throwable
java.lang.Exception
java.lang.RuntimeException
org.apache.uima.InternationalizedRuntimeException
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
PackageInstallerException

public class InternationalizedRuntimeException extends RuntimeException
The InternationalizedRuntimeException class adds internationalization support to the standard functionality provided by java.lang.RuntimeException. Because this is a RuntimeException, it does not need to be declared in the throws clause of methods.

To support internationalization, the thrower of an exception must not specify a hardcoded message string. Instead, the thrower specifies a key that identifies the message. That key is then looked up in a locale-specific ResourceBundle to find the actual message associated with this exception.

This class also supports arguments to messages. The full message will be constructed using the MessageFormat class. For more information on internationalization, see the Java Internationalization Guide.

This version of this class works with JDK versions prior to 1.4, since it does not assume support for exception chaining. The file InternationalizedException.java_1_4 is a version that uses the exception chaining support built-in to JDK1.4.

See Also:
  • Constructor Details

    • InternationalizedRuntimeException

      public InternationalizedRuntimeException()
      Creates a new InternationalizedRuntimeException with a null message.
    • InternationalizedRuntimeException

      public InternationalizedRuntimeException(Throwable aCause)
      Creates a new InternationalizedRuntimeException with the specified cause and a null message.
      Parameters:
      aCause - the original exception that caused this exception to be thrown, if any
    • InternationalizedRuntimeException

      public InternationalizedRuntimeException(String aResourceBundleName, String aMessageKey, Object[] aArguments)
      Creates a new InternationalizedRuntimeException with the specified message.
      Parameters:
      aResourceBundleName - the base name of the resource bundle in which the message for this exception is located.
      aMessageKey - an identifier that maps to the message for this exception. The message may contain placeholders for arguments as defined by the MessageFormat class.
      aArguments - The arguments to the message. null may be used if the message has no arguments.
    • InternationalizedRuntimeException

      public InternationalizedRuntimeException(String aResourceBundleName, String aMessageKey, Object[] aArguments, Throwable aCause)
      Creates a new InternationalizedRuntimeException with the specified message and cause.
      Parameters:
      aResourceBundleName - the base name of the resource bundle in which the message for this exception is located.
      aMessageKey - an identifier that maps to the message for this exception. The message may contain placeholders for arguments as defined by the MessageFormat class.
      aArguments - The arguments to the message. null may be used if the message has no arguments.
      aCause - the original exception that caused this exception to be thrown, if any
  • Method Details

    • getResourceBundleName

      public String getResourceBundleName()
      Gets the base name of the resource bundle in which the message for this exception is located.
      Returns:
      the resource bundle base name. May return null if this exception has no message.
    • getMessageKey

      public String getMessageKey()
      Gets the identifier for this exception's message. This identifier can be looked up in this exception's ResourceBundle to get the locale-specific message for this exception.
      Returns:
      the resource identifier for this exception's message. May return null if this exception has no message.
    • getArguments

      public Object[] getArguments()
      Gets the arguments to this exception's message. Arguments allow a InternationalizedRuntimeException to have a compound message, made up of multiple parts that are concatenated in a language-neutral way.
      Returns:
      the arguments to this exception's message.
    • getMessage

      public String getMessage()
      Gets the English detail message for this exception. For the localized message use getLocalizedMessage().
      Overrides:
      getMessage in class Throwable
      Returns:
      the English detail message for this exception.
    • getLocalizedMessage

      public String getLocalizedMessage()
      Gets the localized detail message for this exception. This uses the default Locale for this JVM. A Locale may be specified using getLocalizedMessage(Locale).
      Overrides:
      getLocalizedMessage in class Throwable
      Returns:
      this exception's detail message, localized for the default Locale.
    • getLocalizedMessage

      public String getLocalizedMessage(Locale aLocale)
      Gets the localized detail message for this exception using the specified Locale.
      Parameters:
      aLocale - the locale to use for localizing the message
      Returns:
      this exception's detail message, localized for the specified Locale.
    • getCause

      public Throwable getCause()
      Gets the cause of this Exception.
      Overrides:
      getCause in class Throwable
      Returns:
      the Throwable that caused this Exception to occur, if any. Returns null if there is no such cause.
    • initCause

      public Throwable initCause(Throwable cause)
      Overrides:
      initCause in class Throwable
    • setResourceBundle

      public void setResourceBundle(Locale aLocale)
      For the case where the default locale is not being used for getting messages, and the lookup path in the classpath for the resource bundle needs to be set at a specific point, call this method to set the resource bundle at that point in the call stack. Example: If in a Pear, and you are throwing an exception, which is defined in a bundle in the Pear context, but the catcher of the throw is up the stack above where the pear context exists (and therefore, is no longer present at "catch" time), and you don't want to use the default-locale for getting the message out of the message bundle, then do something like this
       Exception e = new AnalysisEngineProcessException(MESSAGE_BUNDLE, "TEST_KEY", objects); 
       e.setResourceBundle(my_locale); // call this method, pass in the needed
       locale object throw e; // or whatever should be done with it then do something like this
       
       Exception e = new AnalysisEngineProcessException(MESSAGE_BUNDLE, "TEST_KEY", objects);
       e.setResourceBundle(my_locale); // call this method, pass in the needed locale object
       throw e; // or whatever should be done with it
       
      Parameters:
      aLocale - the locale to use when getting the message from the message bundle at a later time