The Client Object API supports exception classes for queries and for the messaging client.
    
            - ApplicationRuntimeException  – thrown when a call to start the connection, register the application, or
                        unregister the application cannot be completed due to an error. 
 - ConnectionPropertyException  – thrown when a call to start the connection, register the application, or
                        unregister the application cannot be completed due to an error in a
                        connection property value or application identifier 
 - ApplicationTimeoutException – thrown when a call to start the connection, register the application, or
                        unregister the application times out. 
 - LoginRequiredException  – thrown when the client application does not login to the server. 
 - NoSuchOperationException  – thrown when trying to access operation metadata that does not exist in class
                        metadata. 
 - NoSuchAttributeException  – thrown when trying to access an attribute that does not
                        exist in class or entity metadata and thrown by a dynamic query method
                        (ExecuteQuery), if the Query passed in selects for an attribute that does
                        not exist in the MBO queried. 
 - ObjectNotFoundException  – thrown when trying to load an MBO that is not inside the local database. 
                    
 - ObjectNotSavedException  – thrown when a BigBinary or BigString method is called that requires the
                        object to already exist in the database.
 - PersistenceException  – thrown when trying to access the local database. 
 - ProtocolException  – thrown when an exception occurs during protocol version mismatch. 
 - StreamNotOpenException  – thrown when a BigBinary or BigString method is called that requires the
                        object to be open. 
 - StreamNotClosedException  – thrown when a BigBinary or BigString method is called that requires the
                        object to not be open. 
 - SynchronizeException  – thrown when an error occurs during synchronization. 
 - SynchronizeRequiredException  – thrown when synchronization is needed. 
 - WriteAppendOnlyException  – thrown if a BigBinary or BigString method is called that writes to the
                        middle of a value where only appending is allowed by the underlying
                        database. 
 - WriteOverLengthException  – thrown if the platform requires the length to be predetermined before write
                        and a BigBinary or BigString method is called that writes past the
                        predetermined length.