[Python-Dev] Minor socket timeout quibble - timeout raises socket.error

Skip Montanaro skip@pobox.com
Mon, 24 Jun 2002 20:53:49 -0500


I just noticed in the development docs that when a timeout on a socket
occurs, socket.error is raised.  I rather liked the idea that a different
exception was raised for timeouts (I used Tim O'Malley's timeout_socket
module).  Making a TimeoutError exception a subclass of socket.error would
be fine so you can catch it with existing code, but I could see recovering
differently for a timeout as opposed to other possible errors:

    sock.settimeout(5.0)
    try:
        data = sock.recv(8192)
    except socket.TimeoutError:
        # maybe requeue the request
        ...
    except socket.error, codes:
        # some more drastic solution is needed
        ...

Skip