[extractor/common] Wrap extractor errors (Fixes #1194)

For now, we just wrap some common errors. More may follow. We do not want to catch actual programming errors in the extractors, such as 1 // 0.
This commit is contained in:
Philipp Hagemeister 2015-02-10 01:13:57 +01:00
parent 99c2398bc6
commit 3a5bcd0326
1 changed files with 9 additions and 2 deletions

View File

@ -264,8 +264,15 @@ class InfoExtractor(object):
def extract(self, url): def extract(self, url):
"""Extracts URL information and returns it in list of dicts.""" """Extracts URL information and returns it in list of dicts."""
try:
self.initialize() self.initialize()
return self._real_extract(url) return self._real_extract(url)
except ExtractorError:
raise
except compat_http_client.IncompleteRead as e:
raise ExtractorError('A network error has occured.', cause=e, expected=True)
except (KeyError,) as e:
raise ExtractorError('An extractor error has occured.', cause=e)
def set_downloader(self, downloader): def set_downloader(self, downloader):
"""Sets the downloader for this IE.""" """Sets the downloader for this IE."""