Python httplib2 Excepciones de manejo

Tengo este código muy simple para verificar si un sitio está activo o inactivo.

import httplib2
h = httplib2.Http()
response, content = h.request("http://www.folksdhhkjd.com")
if response.status == 200:
    print "Site is Up"
else:
    print "Site is down"

Cuando ingreso una URL válida, imprime correctamente El sitio está activo porque el estado es 200 como se esperaba. Pero, cuando ingreso una URL no válida, ¿no debería imprimir el sitio está caído? En cambio, imprime una excepción algo como esto

Traceback (most recent call last):
  File "C:\Documents and Settings\kripya\Desktop\1.py", line 3, in <module>
    response, content = h.request("http://www.folksdhhkjd.com")
  File "C:\Python27\lib\site-packages\httplib2\__init__.py", line 1436, in request
    (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
  File "C:\Python27\lib\site-packages\httplib2\__init__.py", line 1188, in _request
    (response, content) = self._conn_request(conn, request_uri, method, body, headers)
  File "C:\Python27\lib\site-packages\httplib2\__init__.py", line 1129, in _conn_request
    raise ServerNotFoundError("Unable to find the server at %s" % conn.host)
ServerNotFoundError: Unable to find the server at www.folksdhhkjd.com

¿Cómo puedo anular esta excepción e imprimir mi mensaje personalizado "El sitio está caído"? ¿Alguna orientación, por favor?

EDITA

También una pregunta más ... ¿cuál es la diferencia entre usar

h = httplib2.Http('.cache')   

h = httplib2.Http()   

Respuestas a la pregunta(2)

Su respuesta a la pregunta