qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2 09/23] error: New error_prepend(), error_repo


From: Markus Armbruster
Subject: Re: [Qemu-devel] [PATCH v2 09/23] error: New error_prepend(), error_reportf_err()
Date: Fri, 18 Dec 2015 10:13:41 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Eric Blake <address@hidden> writes:

> On 12/17/2015 09:49 AM, Markus Armbruster wrote:
>> Instead of simply propagating an error verbatim, we sometimes want to
>> add to its message, like this:
>> 
>>     frobnicate(arg, &err);
>>     error_setg(errp, "Can't frobnicate %s: %s",
>>                   arg, error_get_pretty(err));
>
> Did you intend to have literal TABs in the commit message?

Editing accident, fixed.

>>     error_free(err);
>> 
>> This is suboptimal, because it loses err's hint (if any).  Moreover,
>> when errp is &error_abort or is subsequently propagated to
>> &error_abort, the abort message points to the place where we last
>> added to the error, not to the place where it originated.
>> 
>> To avoid these issues, provide means to add to an error's message in
>> place:
>> 
>>     frobnicate(arg, errp);
>>     error_prepend(errp, "Can't frobnicate %s: ", arg);
>> 
>> Likewise, reporting an error like
>> 
>>     frobnicate(arg, &err);
>>     error_report("Can't frobnicate %s: %s", arg, error_get_pretty(err));
>> 
>> can lose err's hint.  To avoid:
>> 
>>     error_reportf_err(err, "Can't frobnicate %s: ", arg);
>> 
>> The next commits will put these functions to use.
>> 
>> Signed-off-by: Markus Armbruster <address@hidden>
>> ---
>>  include/qapi/error.h | 31 +++++++++++++++++++++++++++++--
>>  util/error.c         | 33 +++++++++++++++++++++++++++++++++
>>  2 files changed, 62 insertions(+), 2 deletions(-)
>> 
>
> Reviewed-by: Eric Blake <address@hidden>

Thanks!



reply via email to

[Prev in Thread] Current Thread [Next in Thread]