An Application Exception abstracts a logical exception rather than an exception in network
infrastructure (which is abstracted by RemoteException).
When the LRMIRuntime invoked() method is called (on the server side), it tries to invoke the
method on the designated object. If the method itself throws an exception, LRMIRuntime
encapsulates the exception in an application exception, and throws it back to the protocol
adapter. The protocol adapter should transmit the exception to its client peer and throw the
exception to the application.