From 1c29ef3e4b871508bb2defd6b47b9a745547b626 Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Sat, 13 Nov 2021 19:23:24 -0500 Subject: refactor: specialize exceptions CoverageException is fine as a base class, but not good to use for raising (and catching sometimes). Introduce specialized exceptions that allow third-party tools to integrate better. --- coverage/exceptions.py | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'coverage/exceptions.py') diff --git a/coverage/exceptions.py b/coverage/exceptions.py index de2257a1..c6a7f3da 100644 --- a/coverage/exceptions.py +++ b/coverage/exceptions.py @@ -5,12 +5,26 @@ class _BaseCoverageException(Exception): - """The base of all Coverage exceptions.""" + """The base-base of all Coverage exceptions.""" pass class CoverageException(_BaseCoverageException): - """An exception raised by a coverage.py function.""" + """The base class of all exceptions raised by Coverage.py.""" + pass + + +class ConfigError(_BaseCoverageException): + """A problem with a config file, or a value in one.""" + pass + + +class DataError(CoverageException): + """An error in using a data file.""" + pass + +class NoDataError(CoverageException): + """We didn't have data to work with.""" pass @@ -29,6 +43,11 @@ class NotPython(CoverageException): pass +class PluginError(CoverageException): + """A plugin misbehaved.""" + pass + + class _ExceptionDuringRun(CoverageException): """An exception happened while running customer code. -- cgit v1.2.1