Package oracle.kv

Class FaultException

All Implemented Interfaces:
Serializable, oracle.kv.impl.util.FastExternalizable
Direct Known Subclasses:
ConsistencyException, DurabilityException, PartialLOBException, PublisherFailureException, RequestLimitException, RequestTimeoutException, ResourceLimitException, SubscriptionInsufficientLogException

public class FaultException extends FastExternalizableException
Used to indicate an error condition that cannot normally be handled by the caller of the method, except by retrying the operation.

When the error occurred remotely and was due to an internally defined server exception, the Throwable.getCause() method will return null rather than returning the internal exception, and the remote stack trace will not be a part of the stack trace of this exception. This is because the internal exception class is not present in the client library.

For logging, testing and debugging purposes, the full textual stack trace of the remote exception, including any nested cause exceptions, is available using the getRemoteStackTrace() method, and the remote (or local) exception's class name is returned by getFaultClassName(). The toString() and Throwable.printStackTrace() methods output the fault class name and remote stack trace.

When the error occurred remotely, it will have already been logged and reported on a remote KVStore node and will be available to administrators. However, to correlate client and server errors and to make error information easily accessible on the client, it is good practice to also log the error locally. Errors that originated locally are not automatically logged and available to administrators, and the client application is responsible for reporting them. See wasLoggedRemotely().

See Also:
  • Method Details

    • wasLoggedRemotely

      public boolean wasLoggedRemotely()
      Returns whether the exception was previously logged remotely.

      When the error occurred remotely, it will have already been logged and reported on a remote KVStore node and will be available to administrators. However, to correlate client and server errors and to make error information easily accessible on the client, it is good practice to also log the error locally. Errors that originated locally are not automatically logged and available to administrators, and the client application is responsible for reporting them.

    • getFaultClassName

      public String getFaultClassName()
      Returns the name of the class associated with the original fault exception, or the name of the local exception class if the error occurred locally. When the error occurred locally and this exception is a simple wrapper, the class name of the wrapped exception is returned. This method exists primarily for logging, testing and debugging.
    • getRemoteStackTrace

      public String getRemoteStackTrace()
      Returns the textual stack trace associated with the remote fault exception, or null if the error occurred locally. This method exists primarily for logging, testing and debugging.
    • toString

      public String toString()
      Returns a description of the fault that includes the standard Throwable description (class name and message), followed by the fault class name, followed by the remote stack trace (if any). This method exists primarily for logging, testing and debugging.
      Overrides:
      toString in class Throwable