Hello Moose herders!

Karen wrote in http://www.nntp.perl.org/group/perl.moose/2014/01/msg2796.html:

> Also, I'd like us to restore the previous 'error_class' mechanism
> for indicating in your own Moose-based objects how errors should be
> delivered. It wasn't a well-used feature, but we accidentally lost
> it in the 2.1200 release, and some code on the cpan does use it, so
> it will be nice to bring that back before its absence is noticed.

Turns out that we just noticed that absence…

We have code that wraps exceptions (in our case, coming from
``MooseX::Constructor::AllErrors``) in an exception class of our own,
then catches that.

With a recent update of the ``::AllErrors`` distribution, our code
started failing, because it now calls ``die`` instead of
``meta->throw_error``, so even if we're still using an older
``Moose``, the custom error class is not used.

So now I have a few problems:

- I have to handle exceptions coming from inside ``Moose`` as well as
  those coming from various ``MooseX::*`` (and these do not
  necessarily inherit from ``Moose::Exception``)
- I can't keep my wrapping logic (which extracts some useful pieces
  from the various exceptions) hidden away in a single place, but I
  have to call it from each exception handler

Not *hard* problems, mind you, just a bit annoying. I think I'll end
up with something like::

  try { whatever() }
  catch {
    my $wrapped = wrap_exception($_);
    if ($wrapped) { whatever_was_there_already }
    else { die $_ }
  };

My main issue is that I can't find any mention of the removal of
``error_class`` in any changelog or delta document…

Anyway, suggestions on how to make the above code better are welcome,
and I volunteer to help re-design / re-implement the removed feature.

-- 
        Dakkar - <Mobilis in mobile>
        GPG public key fingerprint = A071 E618 DD2C 5901 9574
                                     6FE2 40EA 9883 7519 3F88
                            key id = 0x75193F88

One does not thank logic.
                -- Sarek, "Journey to Babel", stardate 3842.4

Attachment: signature.asc
Description: PGP signature

Reply via email to