How to Catch Errors in SimpleXMLRPCServer

Jeff McNeil jeff at jmcneil.net
Thu Sep 27 15:55:52 EDT 2007


Instead of register_function, use register_instance and provide a
_dispatch method in that instance that handles your exception logging.

Pseudo:

class MyCalls(object):
    def _dispatch(self, method, args):
        try:
            self.getattr(self, method)(*args)
        except:
            handle_logging()

server = SimpleXMLRPCServer(("localhost", 8000))
server.register_instance(MyCalls())
server.serve_forever()

There might be an easier way... but this works for me.

-Jeff

On 9/27/07, gregpinero at gmail.com <gregpinero at gmail.com> wrote:
> I have a pretty simple XMLRPCServer, something along the lines of the
> example:
>
> server = SimpleXMLRPCServer(("localhost", 8000))
> server.register_function(pow)
> server.register_function(lambda x,y: x+y, 'add')
> server.serve_forever()
>
> Now what I want to do is catch any errors that happen on requests, and
> ideally have them emailed to me.  I have the email part all taken care
> of, I just need to know how to get at the exceptions.
>
> Thanks in advance for any help,
>
> Greg
>
> --
> http://mail.python.org/mailman/listinfo/python-list
>



More information about the Python-list mailing list