D9350: errors: make ParseError a subtype of Abort
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Sat Nov 21 00:26:43 UTC 2020
martinvonz created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.
REVISION SUMMARY
I didn't plan this before, but the previous two changes made it really
easy to make `ParseError` a subtype of `Abort`. It seems obvious with
hindsight that I *should* have planned it :)
REPOSITORY
rHG Mercurial
BRANCH
default
REVISION DETAIL
https://phab.mercurial-scm.org/D9350
AFFECTED FILES
mercurial/chgserver.py
mercurial/dispatch.py
mercurial/error.py
CHANGE DETAILS
diff --git a/mercurial/error.py b/mercurial/error.py
--- a/mercurial/error.py
+++ b/mercurial/error.py
@@ -259,13 +259,12 @@
__bytes__ = _tobytes
-class ParseError(Hint, Exception):
+class ParseError(Abort):
"""Raised when parsing config files and {rev,file}sets (msg[, pos])"""
def __init__(self, message, location=None, hint=None):
- self.message = message
+ super(ParseError, self).__init__(message, hint=hint)
self.location = location
- self.hint = hint
# Pass the message and possibly location into the Exception constructor
# to help code that looks for exc.args.
if location is not None:
diff --git a/mercurial/dispatch.py b/mercurial/dispatch.py
--- a/mercurial/dispatch.py
+++ b/mercurial/dispatch.py
@@ -258,9 +258,6 @@
except error.Abort as inst:
ferr.write(inst.format())
return -1
- except error.ParseError as inst:
- ferr.write(inst.format())
- return -1
msg = _formatargs(req.args)
starttime = util.timer()
@@ -466,9 +463,6 @@
else:
ui.warn(_(b"hg: %s\n") % inst.message)
ui.warn(_(b"(use 'hg help -v' for a list of global options)\n"))
- except error.ParseError as inst:
- ui.warn(inst.format())
- return -1
except error.UnknownCommand as inst:
nocmdmsg = _(b"hg: unknown command '%s'\n") % inst.command
try:
diff --git a/mercurial/chgserver.py b/mercurial/chgserver.py
--- a/mercurial/chgserver.py
+++ b/mercurial/chgserver.py
@@ -506,11 +506,6 @@
args = self._readlist()
try:
self.ui, lui = _loadnewui(self.ui, args, self.cdebug)
- except error.ParseError as inst:
- self.ui.warn(inst.format())
- self.ui.flush()
- self.cresult.write(b'exit 255')
- return
except error.Abort as inst:
self.ui.error(inst.format())
self.ui.flush()
To: martinvonz, #hg-reviewers
Cc: mercurial-patches, mercurial-devel
More information about the Mercurial-devel
mailing list