def catcher(*args):
    try:
        return func(*args)
    except xmlrpc.client.Fault as error:
        error_classes = (GameError, RuleError, ProtocolError)
        for klass in error_classes:
            if (error.faultCode == klass.rpc_code):
                raise klass(error.faultString)
        raise error
def catcher(*args):
    try:
        return func(*args)
    except xmlrpc.client.Fault as error:
        error_classes = (GameError, RuleError, ProtocolError)
        for klass in error_classes:
            if (error.faultCode == klass.rpc_code):
                raise klass(error.faultString)
        raise error