# Class ServerCloneException

java.lang.Object
java.lang.Throwable
java.lang.Exception
java.lang.CloneNotSupportedException
java.rmi.server.ServerCloneException

All Implemented Interfaces:
  `Serializable`

public class ServerCloneException extends CloneNotSupportedException
A `ServerCloneException` is thrown if a remote exception occurs during the cloning of a `UnicastRemoteObject`.

As of release 1.4, this exception has been retrofitted to conform to the general purpose exception-chaining mechanism. The "nested exception" that may be provided at construction time and accessed via the public `detail` field is now known as the cause, and may be accessed via the `Throwable.getCause()` method, as well as the aforementioned "legacy field."

Invoking the method `Throwable.initCause(Throwable)` on an instance of `ServerCloneException` always throws `IllegalStateException`.

Since:
  1.1
See Also:
  - `UnicastRemoteObject.clone()`
  - Serialized Form

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `Exception`
  `detail`
  The cause of the exception.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ServerCloneException(String s)`
  Constructs a `ServerCloneException` with the specified detail message.
  `ServerCloneException(String s, Exception cause)`
  Constructs a `ServerCloneException` with the specified detail message and cause.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Throwable`
  `getCause()`
  Returns the cause of this exception.
  `String`
  `getMessage()`
  Returns the detail message, including the message from the cause, if any, of this exception.

  ### Methods declared in class Throwable

  `addSuppressed, fillInStackTrace, getLocalizedMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString`
  Modifier and Type
  Method
  Description
  `final void`
  `addSuppressed(Throwable exception)`
  Appends the specified exception to the exceptions that were suppressed in order to deliver this exception.
  `Throwable`
  `fillInStackTrace()`
  Fills in the execution stack trace.
  `String`
  `getLocalizedMessage()`
  Creates a localized description of this throwable.
  `StackTraceElement[]`
  `getStackTrace()`
  Provides programmatic access to the stack trace information printed by `Throwable.printStackTrace()`.
  `final Throwable[]`
  `getSuppressed()`
  Returns an array containing all of the exceptions that were suppressed, typically by the `try`-with-resources statement, in order to deliver this exception.
  `Throwable`
  `initCause(Throwable cause)`
  Initializes the cause of this throwable to the specified value.
  `void`
  `printStackTrace()`
  Prints this throwable and its backtrace to the standard error stream.
  `void`
  `printStackTrace(PrintStream s)`
  Prints this throwable and its backtrace to the specified print stream.
  `void`
  `printStackTrace(PrintWriter s)`
  Prints this throwable and its backtrace to the specified print writer.
  `void`
  `setStackTrace(StackTraceElement[] stackTrace)`
  Sets the stack trace elements that will be returned by `Throwable.getStackTrace()` and printed by `Throwable.printStackTrace()` and related methods.
  `String`
  `toString()`
  Returns a short description of this throwable.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Field Details

  - ### detail

    public Exception detail
    The cause of the exception.

    This field predates the general-purpose exception chaining facility. The `Throwable.getCause()` method is now the preferred means of obtaining this information.

- ## Constructor Details

  - ### ServerCloneException

    public ServerCloneException(String s)
    Constructs a `ServerCloneException` with the specified detail message.
    Parameters:
      `s` - the detail message.

  - ### ServerCloneException

    public ServerCloneException(String s, Exception cause)
    Constructs a `ServerCloneException` with the specified detail message and cause.
    Parameters:
      `s` - the detail message.
      `cause` - the cause

- ## Method Details

  - ### getMessage

    public String getMessage()
    Returns the detail message, including the message from the cause, if any, of this exception.
    Overrides:
      `getMessage` in class `Throwable`
    Returns:
      the detail message

  - ### getCause

    public Throwable getCause()
    Returns the cause of this exception. This method returns the value of the `detail` field.
    Overrides:
      `getCause` in class `Throwable`
    Returns:
      the cause, which may be `null`.
    Since:
      1.4