We are only anticipating QMPShellErrors here, for syntax we weren't able to understand. Other errors, if any, should be allowed to percolate upwards.
Signed-off-by: John Snow <js...@redhat.com> --- scripts/qmp/qmp-shell | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/scripts/qmp/qmp-shell b/scripts/qmp/qmp-shell index 78e4eae00754..8d5845ab4815 100755 --- a/scripts/qmp/qmp-shell +++ b/scripts/qmp/qmp-shell @@ -291,10 +291,13 @@ class QMPShell(qmp.QEMUMonitorProtocol): def _execute_cmd(self, cmdline: str) -> bool: try: qmpcmd = self.__build_cmd(cmdline) - except Exception as err: - print('Error while parsing command line: %s' % err) - print('command format: <command-name> ', end=' ') - print('[arg-name1=arg1] ... [arg-nameN=argN]') + except QMPShellError as err: + print( + f"Error while parsing command line: {err!s}\n" + "command format: <command-name> " + "[arg-name1=arg1] ... [arg-nameN=argN", + file=sys.stderr + ) return True # For transaction mode, we may have just cached the action: if qmpcmd is None: -- 2.26.2