[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index][Thread Index][Top&Search][Original]
Re: A common base exception object for Perl - RFC
Stephen Zander writes:
: >>>>> "Pete" == Pete Jordan <pjordan1@email.mot.com> writes:
: Pete> Fair point. OK, you've convinced me. I can derive a
: Pete> structure from Graham's C<Error> module - a bare framework
: Pete> base class and C<Exception::Simple> which would implement
: Pete> what I originally described.
:
: As someone who bitched loud & long about this at the last conference I
: have one question: do you plan to fix all the croak calls in the
: current source code and/or supply some mechanism for XS programmers to
: Do The Right Thing as well? The whole point of having *any* exception
: class is wasted if it only applies to custome code and as along as you
: support the auto-stringification (is that a word?) of $@, the Backward
: Compatability Police can't touch you.
:
: BTW, as backwards compatability requires you to support
: auto-stringification of $@ anyway, why bother with a 'to_string'
: string method at all? This:
:
: print $@;
:
: is so much less typing than this:
:
: print $@->to_string;
That's the plan. In fact, it may be that stringification and
numification methods ought to be supported even in the absence of
ordinary operator overloading. I could have used that in the
Java/Perl thingie I did a couple of years ago. Not that stringify
overloading didn't work fine for that, but I felt strange making
all those classes with only '""' overloaded. Made me think something
isn't decomposed quite right.
Another interesting question is whether $@ gets denatured or stays an
object when you do
$@ =~ s/foo/bar/;
It could be made to stay an object, if $@->STRINGIFY returns an
lvalue. That probably makes more sense than denaturing $@, since other
code may rely on $@ remaining an object.
Larry
- Follow-Ups from:
-
Pete Jordan <pjordan1@email.mot.com>
Stephen Zander <gibreel@pobox.com>
- References to:
-
Stephen Zander <gibreel@pobox.com>
[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index][Thread Index][Top&Search][Original]