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() 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/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: