changeset 26896:5e46123e6c35

error: add structured exception for EOF at prompt We'll catch this exception for promptchoice queries to provide better error handling.
author Siddharth Agarwal <sid0@fb.com>
date Tue, 10 Nov 2015 00:46:45 -0800
parents fc41f9ffd4a4
children da1c706c9a35
files mercurial/error.py mercurial/ui.py
diffstat 2 files changed, 8 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/error.py	Mon Nov 09 22:37:32 2015 -0800
+++ b/mercurial/error.py	Tue Nov 10 00:46:45 2015 -0800
@@ -72,6 +72,12 @@
 class UpdateAbort(Abort):
     """Raised when an update is aborted for destination issue"""
 
+class ResponseExpected(Abort):
+    """Raised when an EOF is received for a prompt"""
+    def __init__(self):
+        from .i18n import _
+        Abort.__init__(self, _('response expected'))
+
 class OutOfBandError(Exception):
     """Exception raised when a remote repo reports failure"""
 
--- a/mercurial/ui.py	Mon Nov 09 22:37:32 2015 -0800
+++ b/mercurial/ui.py	Tue Nov 10 00:46:45 2015 -0800
@@ -756,7 +756,7 @@
                 self.write(r, "\n")
             return r
         except EOFError:
-            raise error.Abort(_('response expected'))
+            raise error.ResponseExpected()
 
     @staticmethod
     def extractchoices(prompt):
@@ -803,7 +803,7 @@
             else:
                 return getpass.getpass('')
         except EOFError:
-            raise error.Abort(_('response expected'))
+            raise error.ResponseExpected()
     def status(self, *msg, **opts):
         '''write status message to output (if ui.quiet is False)