def catcher(*args):
    try:
        return func(*args)
    except GameError as error:
        raise xmlrpc.client.Fault(GameError.rpc_code, str(error))
    except RuleError as error:
        raise xmlrpc.client.Fault(RuleError.rpc_code, str(error))
    except ProtocolError as error:
        raise xmlrpc.client.Fault(ProtocolError.rpc_code, str(error))
def catcher(*args):
    try:
        return func(*args)
    except GameError as error:
        raise xmlrpc.client.Fault(GameError.rpc_code, str(error))
    except RuleError as error:
        raise xmlrpc.client.Fault(RuleError.rpc_code, str(error))
    except ProtocolError as error:
        raise xmlrpc.client.Fault(ProtocolError.rpc_code, str(error))