RPC functions often throw exceptions. What exactly happens when these exceptions are thrown? Most importantly, what happens on the server side? Does the RPC call just end as soon as the error is thrown, allowing the server and the session to continue normally?