ClientException is an exception wrapper that presents itself as a server exception. Often, exceptions are
thrown from the server to the client, but the server's exception classes are not available on the client side.
This exception class can be made available on the client side and presents itself as if it were the originally
thrown exception. The class name of the original exception is saved and used in the toString() method along
with the original message. The stack trace from the original exception is copied into this exception. This is
more efficient, more convenient and more accurate than attempting to convert the original exception's message
and stack trace into a string representation.