"Aggelos I. Orfanakos" <[EMAIL PROTECTED]> wrote in message 
news:[EMAIL PROTECTED]
> Good point, but with your way, if "s = ... # socket opens" fails, then
> nothing will catch it. What I usually do is what I wrote above (place
> it below the 2nd try), and when attempting to close it, first use an if
> like: "if locals().has_key('s'):".

Then how about:
    try:
        s = ... # socket opens
        try:
            # various code ...
        finally:
            s.close() # socket closes
    except socket.error, x:
        # exception handling

This handles all the socket exceptions in one shot.  The only problem is 
that different problems may have to be handled differently.  For instance, 
you may need to handle a transmission that failed in the middle differently 
than a failure to open the socket.

Dan


-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to