develooper Front page | perl.perl6.language | Postings from January 2010

Re: Custom errors on subsets?

Thread Previous | Thread Next
From:
Jonathan Scott Duff
Date:
January 5, 2010 09:33
Subject:
Re: Custom errors on subsets?
Message ID:
b762bfda1001050620t5abcf4d6kf9dc1e1dd746d9f@mail.gmail.com
On Tue, Jan 5, 2010 at 1:07 AM, Ovid
<publiustemp-perl6language2@yahoo.com>wrote:

> --- On Mon, 4/1/10, yary <not.com@gmail.com> wrote:
>
> > From: yary <not.com@gmail.com>
>
> > How about
> > multi sub foo(Any $name) { die "Houston, we have a major
> > malfunction."}
>
> Looks like tha would work, but it forces the developer to remember to write
> this extra code every time they may have a constraint failure, if they
> forget, we're back to the old, cryptic message.  It would be much nicer to
> be able to do this (psuedo-code, obviouly):
>
>  subset Filename of Str where { $_ ~~ :f }
>     :OnFail { "No such file: '$_'" }
>  subset Celsius  of Num where { $_ >= -273.15 }
>    :OnFail { "Celsius temperature should be a Num >= -273.15, not '$_' " }
>
> With something akin to that, developers won't have to write extra
> boilerplate every time a constraint fails.  Plus, the code is friendlier :)
>

I'd imagine that the functionality will fall out of the ability  to have
nice failures because surely something like the following works now:

subset Filename of Str where { $_ ~~ :f  or fail "No such file: '$_'" }

Perhaps s/fail/die/, but that seems like a means to your desired end.

-Scott
-- 
Jonathan Scott Duff
perlpilot@gmail.com


Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About