Patchwork D10738: errors: create superclass for Abort exception

login
register
mail settings
Submitter phabricator
Date May 19, 2021, 5:48 a.m.
Message ID <differential-rev-PHID-DREV-632ghguatvyj3i2r4ffj-req@mercurial-scm.org>
Download mbox | patch
Permalink /patch/49057/
State Superseded
Headers show

Comments

phabricator - May 19, 2021, 5:48 a.m.
martinvonz created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.

REVISION SUMMARY
  I'd like to let extensions subclass `StorageError` to define a custom
  exit code. However, `StorageError` does not extend `Abort` (which is
  where the exit code currently lives), and it seems that it's not
  supposed to either (`StorageError` seems to be for lower-level errors
  and `Abort` is for command-level errors). This patch therefore
  extracts all the code from `Abort` into a new `Error` class, which
  I'll soon make `StorageError` also extend.

REPOSITORY
  rHG Mercurial

BRANCH
  default

REVISION DETAIL
  https://phab.mercurial-scm.org/D10738

AFFECTED FILES
  mercurial/error.py

CHANGE DETAILS




To: martinvonz, #hg-reviewers
Cc: mercurial-patches, mercurial-devel

Patch

diff --git a/mercurial/error.py b/mercurial/error.py
--- a/mercurial/error.py
+++ b/mercurial/error.py
@@ -51,8 +51,8 @@ 
         super(Hint, self).__init__(*args, **kw)
 
 
-class Abort(Hint, Exception):
-    """Raised if a command needs to print an error and exit."""
+class Error(Hint, Exception):
+    """Base class for Mercurial errors."""
 
     def __init__(
         self, message, hint=None, coarse_exit_code=None, detailed_exit_code=None
@@ -87,6 +87,10 @@ 
         return message
 
 
+class Abort(Error):
+    """Raised if a command needs to print an error and exit."""
+
+
 class StorageError(Hint, Exception):
     """Raised when an error occurs in a storage layer.