From 3a493b60661760b26ebc9dd2f4c5c7e4b8df93c9 Mon Sep 17 00:00:00 2001 From: Kostis Anagnostopoulos Date: Fri, 5 Apr 2019 11:52:00 +0200 Subject: [PATCH] fix: do not catch system exceptions like KeyboardInterrupt --- scrapy/contracts/__init__.py | 2 +- scrapy/core/spidermw.py | 2 +- scrapy/utils/defer.py | 4 ++-- scrapy/utils/misc.py | 2 +- tests/mockserver.py | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/scrapy/contracts/__init__.py b/scrapy/contracts/__init__.py index 259220a72..536bbdafb 100644 --- a/scrapy/contracts/__init__.py +++ b/scrapy/contracts/__init__.py @@ -94,7 +94,7 @@ class ContractsManager(object): try: output = cb(response) output = list(iterate_spider_output(output)) - except: + except Exception: case = _create_testcase(method, 'callback') results.addError(case, sys.exc_info()) diff --git a/scrapy/core/spidermw.py b/scrapy/core/spidermw.py index e07f76bdf..b5f9837ff 100644 --- a/scrapy/core/spidermw.py +++ b/scrapy/core/spidermw.py @@ -49,7 +49,7 @@ class SpiderMiddlewareManager(MiddlewareManager): .format(fname(method), type(result))) except _InvalidOutput: raise - except: + except Exception: return scrape_func(Failure(), request, spider) return scrape_func(response, request, spider) diff --git a/scrapy/utils/defer.py b/scrapy/utils/defer.py index bcf209511..69d621830 100644 --- a/scrapy/utils/defer.py +++ b/scrapy/utils/defer.py @@ -48,7 +48,7 @@ def mustbe_deferred(f, *args, **kw): # exception in Scrapy - see #125 except IgnoreRequest as e: return defer_fail(failure.Failure(e)) - except: + except Exception: return defer_fail(failure.Failure()) else: return defer_result(result) @@ -102,5 +102,5 @@ def iter_errback(iterable, errback, *a, **kw): yield next(it) except StopIteration: break - except: + except Exception: errback(failure.Failure(), *a, **kw) diff --git a/scrapy/utils/misc.py b/scrapy/utils/misc.py index 6de36d45c..ddaa7f7bf 100644 --- a/scrapy/utils/misc.py +++ b/scrapy/utils/misc.py @@ -86,7 +86,7 @@ def extract_regex(regex, text, encoding='utf-8'): try: strings = [regex.search(text).group('extract')] # named group - except: + except Exception: strings = regex.findall(text) # full regex or numbered groups strings = flatten(strings) diff --git a/tests/mockserver.py b/tests/mockserver.py index bf62fe907..3fa4bc0f0 100644 --- a/tests/mockserver.py +++ b/tests/mockserver.py @@ -177,7 +177,7 @@ class Root(Resource): try: from tests import tests_datadir self.putChild(b"files", File(os.path.join(tests_datadir, 'test_site/files/'))) - except: + except Exception: pass self.putChild(b"redirect-to", RedirectTo())