org.crosswire.common.util

## Class LucidException

- java.lang.Object
- - java.lang.Throwable
  - - java.lang.Exception
    - - org.crosswire.common.util.LucidException

- All Implemented Interfaces:
    Serializable
  Direct Known Subclasses:
    BookException, ConfigException, InstallException, NoSuchKeyException, StartupException

      public class LucidException
      extends Exception

  A LucidException adds 2 concepts to a base Exception, that of a wrapped Exception, that of internationalized (i18n) messages.

  The first addition is the concept of an optional wrapped Exception (actually a Throwable), which describes what caused this to happen. Any well defined interface will define the exact exceptions that the methods of that interface will throw, and not leave it to the ambiguous "throws Exception". However the interface should have no idea how it will be implemented and so the details of exactly what broke under the covers gets lost. With LucidException this detail is kept in the wrapped Exception. This functionality has been added to the base Exception class in J2SE 1.4

  The second addition is the concept of i18n messages. Normal Exceptions are created with an almost random string in the message field, LucidExceptions define this string to be a key into a resource bundle, and to help formatting this string there is an optional Object array of format options. There is a constructor that allows us to specify no i18n lookup, which is useful if this lookup may have been done already.

  Author:
    Joe Walker
  See Also:
    `The GNU Lesser General Public License for details.`, `LucidRuntimeException`, Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private static long` | `serialVersionUID` Serialization ID

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `LucidException(String msg)` All LucidExceptions are constructed with references to resources in an i18n properties file.
    `LucidException(String msg, Throwable cause)` All LucidExceptions are constructed with references to resources in an i18n properties file.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `getDetailedMessage()` Accessor of the full detailed version of the string

    - ### Methods inherited from class java.lang.Throwable

      `addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### serialVersionUID

          private static final long serialVersionUID

      Serialization ID
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### LucidException

          public LucidException(String msg)

      All LucidExceptions are constructed with references to resources in an i18n properties file.
      Parameters:
        `msg` - The resource id to read

    - #### LucidException

          public LucidException(String msg,
                        Throwable cause)

      All LucidExceptions are constructed with references to resources in an i18n properties file.
      Parameters:
        `msg` - The resource id to read
        `cause` - The cause of the exception

  - ### Method Detail

    - #### getDetailedMessage

          public String getDetailedMessage()

      Accessor of the full detailed version of the string
      Returns:
        The full unraveled i18n string