diff options
author | Philipp Hagemeister <phihag@phihag.de> | 2015-02-10 01:13:57 +0100 |
---|---|---|
committer | Philipp Hagemeister <phihag@phihag.de> | 2015-02-10 01:17:23 +0100 |
commit | 3a5bcd03263059bd7b905d4586c5f23f7f120974 (patch) | |
tree | c45dc06baada7eff584a12d24592e9febb2c1e43 | |
parent | 99c2398bc641c478dbea85c013081d883479827e (diff) |
[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.
-rw-r--r-- | youtube_dl/extractor/common.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/youtube_dl/extractor/common.py b/youtube_dl/extractor/common.py index 2f5ba7aee..eee936a6f 100644 --- a/youtube_dl/extractor/common.py +++ b/youtube_dl/extractor/common.py @@ -264,8 +264,15 @@ class InfoExtractor(object): def extract(self, url): """Extracts URL information and returns it in list of dicts.""" - self.initialize() - return self._real_extract(url) + try: + self.initialize() + 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): """Sets the downloader for this IE.""" |