Hi Thomas,

Thomas Adam wrote:

> When coming out of eval blocks and reporting on errors, make sure $@ is
> included as part of the textual output so that the real underlying error is
> reported.
> ---
>  I was recently bitten by this:
>
>  dpkg-source: error: source package format `3.0 (native)' is not supported
>  (Perl module Dpkg::Source::Package::V3::native is required)
>
>  Of course, that file is being required just fine, the problem turned out
>  to be missing File::Temp, but without including $@, I would never have
>  know this, due to a custom error message completely hiding this detail.

Small nit: in this example, I think the text after the three dashes
makes a much better commit message than the text before them.

[...]
> --- a/scripts/Dpkg/Source/Package.pm
> +++ b/scripts/Dpkg/Source/Package.pm
> @@ -233,7 +233,8 @@ sub upgrade_object_type {
>              $self->{'fields'}{'Format'} .= " ($variant)" if defined $variant;
>          }
>          if ($@) {
> -         error(_g("source package format `%s' is not supported (Perl module 
> %s is required)"), $format, $module);
> +         error(_g("source package format `%s' is not supported (Perl module 
> %s is required): %s"),
> +                     $format, $module, $@);

If the Dpkg::Source::Package::V3::foo module is missing, will $@
mention so?  I am asking because I wonder if

        _g("source package format '%s' is not supported: %s')

might not be a shorter way to convey the same information.

Thanks,
Jonathan


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]
Archive: http://lists.debian.org/20120319152835.GD11180@burratino

Reply via email to