aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorDaniel P. Berrangé <berrange@redhat.com>2021-10-28 16:13:55 +0100
committerDaniel P. Berrangé <berrange@redhat.com>2021-11-02 15:55:13 +0000
commit6fa6b54f5b931e10e24f773d991a48da4f79e61a (patch)
treecb73a05e910d18e71486467401e27f0be64a542d /docs
parentfa2613afa1ebe50c59606f1c30ad6738fe6919a5 (diff)
downloadqemu-6fa6b54f5b931e10e24f773d991a48da4f79e61a.zip
qemu-6fa6b54f5b931e10e24f773d991a48da4f79e61a.tar.gz
qemu-6fa6b54f5b931e10e24f773d991a48da4f79e61a.tar.bz2
docs/devel: update error handling guidance for HMP commands
Best practice is to use the 'hmp_handle_error' function, not 'monitor_printf' or 'error_report_err'. This ensures that the message always gets an 'Error: ' prefix, distinguishing it from normal command output. Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Diffstat (limited to 'docs')
-rw-r--r--docs/devel/writing-monitor-commands.rst19
1 files changed, 7 insertions, 12 deletions
diff --git a/docs/devel/writing-monitor-commands.rst b/docs/devel/writing-monitor-commands.rst
index a973c48..a381b52 100644
--- a/docs/devel/writing-monitor-commands.rst
+++ b/docs/devel/writing-monitor-commands.rst
@@ -293,9 +293,7 @@ Here's the implementation of the "hello-world" HMP command::
Error *err = NULL;
qmp_hello_world(!!message, message, &err);
- if (err) {
- monitor_printf(mon, "%s\n", error_get_pretty(err));
- error_free(err);
+ if (hmp_handle_error(mon, err)) {
return;
}
}
@@ -307,9 +305,10 @@ There are three important points to be noticed:
1. The "mon" and "qdict" arguments are mandatory for all HMP functions. The
former is the monitor object. The latter is how the monitor passes
arguments entered by the user to the command implementation
-2. hmp_hello_world() performs error checking. In this example we just print
- the error description to the user, but we could do more, like taking
- different actions depending on the error qmp_hello_world() returns
+2. hmp_hello_world() performs error checking. In this example we just call
+ hmp_handle_error() which prints a message to the user, but we could do
+ more, like taking different actions depending on the error
+ qmp_hello_world() returns
3. The "err" variable must be initialized to NULL before performing the
QMP call
@@ -466,9 +465,7 @@ Here's the HMP counterpart of the query-alarm-clock command::
Error *err = NULL;
clock = qmp_query_alarm_clock(&err);
- if (err) {
- monitor_printf(mon, "Could not query alarm clock information\n");
- error_free(err);
+ if (hmp_handle_error(mon, err)) {
return;
}
@@ -607,9 +604,7 @@ has to traverse the list, it's shown below for reference::
Error *err = NULL;
method_list = qmp_query_alarm_methods(&err);
- if (err) {
- monitor_printf(mon, "Could not query alarm methods\n");
- error_free(err);
+ if (hmp_handle_error(mon, err)) {
return;
}