Eric Blake <ebl...@redhat.com> 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 <arm...@redhat.com>
>> ---
>>  include/qapi/error.h | 31 +++++++++++++++++++++++++++++--
>>  util/error.c         | 33 +++++++++++++++++++++++++++++++++
>>  2 files changed, 62 insertions(+), 2 deletions(-)
>> 
>
> Reviewed-by: Eric Blake <ebl...@redhat.com>

Thanks!

Reply via email to