Package org.apache.sis.util
Class Exceptions
Static methods working with 
Exception instances.- Since:
- 0.3
Defined in the sis-utility module
- 
Method SummaryModifier and TypeMethodDescriptionstatic StringformatChainedMessages(Locale locale, String header, Throwable cause) Returns a string which contains the given message on the first line, followed by the localized message of the given exception on the next line.static StringgetLocalizedMessage(Throwable exception, Locale locale) Returns the message of the given exception, localized in the given locale if possible.static booleanmessageEquals(Throwable first, Throwable second) Returnstrueif the given exceptions are of the same class and contains the same message.static ExceptionIf the given exception is a wrapper for another exception, returns the unwrapped exception.
- 
Method Details- 
getLocalizedMessageReturns the message of the given exception, localized in the given locale if possible. Some exceptions created by SIS can format a message in different locales. This method returns such localized message if possible, or fallback on the standard JDK methods otherwise. More specifically:- If the given exceptionis null, then this method returnsnull.
- Otherwise if the given localeis null, then this method returnsThrowable.getMessage(). This is consistent with theLocalizedpolicy saying that null locale stands for "unlocalized" message (usually in English) or message in the JVM default locale.
- Otherwise if the given exceptionis an instance ofLocalizedExceptionproviding a non-null international message, then this method returns the result ofInternationalString.toString(Locale).
- Otherwise this method returns Throwable.getLocalizedMessage().
 - Parameters:
- exception- the exception from which to get the localize message, or- null.
- locale- the preferred locale for the message, or- nullfor the JVM default locale. This locale is honored on a best-effort basis only.
- Returns:
- the message in the given locale if possible, or nullif theexceptionargument wasnullor if the exception does not contain a message.
- See Also:
 
- If the given 
- 
messageEqualsReturnstrueif the given exceptions are of the same class and contains the same message. This method does not compare the stack trace, cause or suppressed exceptions.- Parameters:
- first- the first exception, or- null.
- second- the second exception, or- null.
- Returns:
- trueif both exceptions are- null, or both exceptions are non-null, of the same class and with the same message.
- Since:
- 1.0
 
- 
formatChainedMessagesReturns a string which contains the given message on the first line, followed by the localized message of the given exception on the next line. If the exception has a causes, then the class name and the localized message of the cause are formatted on the next line and the process is repeated for the whole cause chain, omitting duplicated messages.SQLExceptionis handled especially in order to process the next exception instead of the cause.This method does not format the stack trace. - Parameters:
- locale- the preferred locale for the exception message, or- null.
- header- the message to insert on the first line, or- nullif none.
- cause- the exception, or- nullif none.
- Returns:
- the formatted message, or nullif both the header wasnulland no exception provide a message.
 
- 
unwrapIf the given exception is a wrapper for another exception, returns the unwrapped exception. Otherwise returns the given argument unchanged. An exception is considered a wrapper if:- It is an instance of InvocationTargetException(could be wrapping anything).
- It is an instance of ExecutionException(could be wrapping anything).
- It is an instance of BackingStoreException(typically wrapping a checked exception).
- It is an instance of UncheckedIOException(wrapping aIOException).
- It is an instance of DirectoryIteratorException(wrapping aIOException).
- It is a parent type of the cause. For example, some JDBC drivers wrap SQLExceptionin otherSQLExceptionwithout additional information.
 Note:This method uses only the exception class as criterion; it does not verify if the exception messages are the same.PrivilegedActionExceptionis also a wrapper exception, but is not included in above list because it is used in very specific contexts. Furthermore, classes related to security manager are deprecated since Java 17.- Parameters:
- exception- the exception to unwrap (may be- null.
- Returns:
- the unwrapped exception (may be the given argument itself).
- Since:
- 0.8
 
- It is an instance of 
 
-