Importing http.py's import of HTTPException here is a bad sign.  I think the right fix is to encapsulate all fetch errors in http.py's Web and CachedWed as FetchError's there so that here you can trap that exception type cleanly.  They handle their layer, you handle yours here.