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?

>     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>

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to