summaryrefslogtreecommitdiff
path: root/coverage/misc.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2017-01-19 22:19:21 -0500
committerNed Batchelder <ned@nedbatchelder.com>2017-01-19 22:19:21 -0500
commite60719206392ed47f28ddeadafa8319be90ae0f0 (patch)
tree7f929fb710d698eda905da0bd238838244cb8316 /coverage/misc.py
parent4d89d792e10218efea93e96ec810ecc45340c2a8 (diff)
downloadpython-coveragepy-git-e60719206392ed47f28ddeadafa8319be90ae0f0.tar.gz
A better way to deal with StopEverything exceptions
Diffstat (limited to 'coverage/misc.py')
-rw-r--r--coverage/misc.py18
1 files changed, 14 insertions, 4 deletions
diff --git a/coverage/misc.py b/coverage/misc.py
index cb9248d2..d3723e29 100644
--- a/coverage/misc.py
+++ b/coverage/misc.py
@@ -255,8 +255,13 @@ class SimpleRepr(object):
)
-class CoverageException(Exception):
- """An exception specific to coverage.py."""
+class BaseCoverageException(Exception):
+ """The base of all Coverage exceptions."""
+ pass
+
+
+class CoverageException(BaseCoverageException):
+ """A run-of-the-mill exception specific to coverage.py."""
pass
@@ -298,6 +303,11 @@ class StopEverything(getattr(unittest, 'SkipTest', Exception)):
pass
-class IncapablePython(CoverageException, StopEverything):
- """An operation is attempted that this version of Python cannot do."""
+class IncapablePython(BaseCoverageException, StopEverything):
+ """An operation is attempted that this version of Python cannot do.
+
+ This is derived from BaseCoverageException, not CoverageException, so that
+ it won't get caught by 'except CoverageException'.
+
+ """
pass