title: How do we handle Python xmlrpclib Connection Refused?
body: <p>I don't know what the heck I'm doing wrong here, I wrote have an RPC client trying to connect to a non-existent server, and I'm trying to handle the exception that is thrown, but no matter what I try I can't figure out how I'm supposed to handle this:</p>
  
  <pre><code>def _get_rpc():
      try:
          a = ServerProxy('http://dd:LNXFhcZnYshy5mKyOFfy@127.0.0.1:9001')
          a = a.supervisor
          return a
      except:
          return False
  
  rpc = _get_rpc()
  if not rpc:
      print "No RPC"
  </code></pre>
  
  <p>Since there is no server running, I would expect the output to be "No RPC" but instead I get an exception:</p>
  
  <pre><code>Traceback (most recent call last):
    File "xmlrpctest.py", line 20, in &lt;module&gt;
      if not rpc:
    File "/usr/lib/python2.6/xmlrpclib.py", line 1199, in __call__
      return self.__send(self.__name, args)
    File "/usr/lib/python2.6/xmlrpclib.py", line 1489, in __request
      verbose=self.__verbose
    File "/usr/lib/python2.6/xmlrpclib.py", line 1235, in request
      self.send_content(h, request_body)
    File "/usr/lib/python2.6/xmlrpclib.py", line 1349, in send_content
      connection.endheaders()
    File "/usr/lib/python2.6/httplib.py", line 908, in endheaders
      self._send_output()
    File "/usr/lib/python2.6/httplib.py", line 780, in _send_output
      self.send(msg)
    File "/usr/lib/python2.6/httplib.py", line 739, in send
      self.connect()
    File "/usr/lib/python2.6/httplib.py", line 720, in connect
      self.timeout)
    File "/usr/lib/python2.6/socket.py", line 561, in create_connection
      raise error, msg
  socket.error: [Errno 111] Connection refused
  </code></pre>