Class DataStoreException

java.lang.Object
java.lang.Throwable
java.lang.Exception
org.apache.sis.storage.DataStoreException
All Implemented Interfaces:
Serializable, LocalizedException
Direct Known Subclasses:
CanNotProbeException, ConcurrentReadException, ConcurrentWriteException, DataStoreClosedException, DataStoreContentException, DataStoreReferencingException, ForwardOnlyStorageException, IllegalFeatureTypeException, IllegalOpenParameterException, IncompatibleResourceException, InternalDataStoreException, NoSuchDataException, ReadOnlyStorageException, ResourceAlreadyExistsException, UnsupportedQueryException

public class DataStoreException extends Exception implements LocalizedException
Thrown when a DataStore cannot complete a read or write operation.

Localization

The getMessage() and getLocalizedMessage() methods return the same message, but sometimes in different languages. The general policy is that getMessage() returns the message in the JVM default locale while getLocalizedMessage() returns the message in the locale specified by the last call to DataStore.setLocale(Locale). In a client-server architecture, the former is typically the locale of the system administrator while the latter is presumably the locale of the client connected to the server. However, this policy is applied on a best-effort basis only.
Since:
0.3
Version:
0.8
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      For cross-version compatibility.
      See Also:
    • key

      private transient short key
      The resources key as one of the Resources.Keys constant, or 0 if none.

      This field is not serialized because key values sometimes change between different SIS versions. The deserialized value will be 0, which will cause this DataStoreException to fallback on super.getMessage().

    • parameters

      private transient Object[] parameters
      The parameters for the localization message, or null if none.
  • Constructor Details

    • DataStoreException

      public DataStoreException()
      Creates an exception with no cause and no details message.
    • DataStoreException

      public DataStoreException(String message)
      Creates an exception with the specified details message.
      Parameters:
      message - the detail message in the default locale.
    • DataStoreException

      public DataStoreException(Throwable cause)
      Creates an exception with the specified cause and no details message.
      Parameters:
      cause - the cause for this exception.
    • DataStoreException

      public DataStoreException(String message, Throwable cause)
      Creates an exception with the specified details message and cause.
      Parameters:
      message - the detail message in the default locale.
      cause - the cause for this exception.
    • DataStoreException

      public DataStoreException(Locale locale, String format, String filename, Object store)
      Creates a localized exception with a message saying that the given store cannot be processed. Location in the file where the error occurred while be fetched from the given store argument if possible, for example by invoking the LineNumberReader.getLineNumber() or XMLStreamReader.getLocation() method. If the given store argument is not one of the recognized types, then it is ignored.

      Examples of messages created by this constructor:

      • Cannot read “Foo” as a file in the Bar format.
      • Cannot read after column 10 or line 100 of “Foo” as part of a file in the Bar format.
      Parameters:
      locale - the locale of the message to be returned by getLocalizedMessage(), or null.
      format - short name or abbreviation of the data format (e.g. "CSV", "GML", "WKT", etc).
      filename - name of the file or data store where the error occurred.
      store - the input or output object from which to get the current position, or null if none. This can be a LineNumberReader or XMLStreamReader for example.
      Since:
      0.8
    • DataStoreException

      @Workaround(library="JDK", version="1.8") private DataStoreException(Locale locale, Object[] params)
      Workaround for RFE #4093999 ("Relax constraint on placement of this()/super() call in constructors").
    • DataStoreException

      DataStoreException(Locale locale, short key, Object... parameters)
      Creates a new exception which will format a localized message in the given locale.
      Parameters:
      locale - the locale for the message to be returned by getLocalizedMessage().
      key - one of Resources.Keys constants.
      parameters - parameters to use for formatting the messages.
  • Method Details

    • getMessage

      public String getMessage()
      Returns the exception message in the default locale, typically for system administrator.
      Specified by:
      getMessage in interface LocalizedException
      Overrides:
      getMessage in class Throwable
      Returns:
      the message of this exception.
    • getLocalizedMessage

      public String getLocalizedMessage()
      Returns a localized version of the exception message, typically for final user. This is often the same message than the one returned by getMessage(), but may in some occasions be different if DataStore.setLocale(Locale) has been invoked with a different locale.

      getMessage() versus getLocalizedMessage()

      When getMessage() and getLocalizedMessage() are not equivalent, the Apache SIS policy is that getMessage() returns the message in the default locale while getLocalizedMessage() returns the message in a locale that depends on the context in which the exception has been thrown. In a client-server architecture, the former is often the locale on the server side while the latter is the locale on the client side if that information has been provided to the DataStore.
      Specified by:
      getLocalizedMessage in interface LocalizedException
      Overrides:
      getLocalizedMessage in class Throwable
      Returns:
      the localized message of this exception.
      Since:
      0.8
      See Also:
    • getInternationalMessage

      public org.opengis.util.InternationalString getInternationalMessage()
      If this exception is capable to return the message in various locales, returns that message. Otherwise returns null.
      Specified by:
      getInternationalMessage in interface LocalizedException
      Returns:
      the exception message, or null if this exception cannot produce international message.
      Since:
      0.8
    • initCause

      public DataStoreException initCause(Throwable cause)
      Initializes the cause of this throwable to the specified value.
      Overrides:
      initCause in class Throwable
      Parameters:
      cause - the cause saved for later retrieval by the Throwable.getCause() method.
      Returns:
      a reference to this DataStoreException instance.
      Since:
      0.8