Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot

Better error messages from Moo?

by szabgab (Priest)
on Jun 15, 2013 at 13:02 UTC ( [id://1039117]=perlquestion: print w/replies, xml ) Need Help??

szabgab has asked for the wisdom of the Perl Monks concerning the following question:

With this module:
package Person; use Moo; has name => (is => 'rw', required => 1); 1;
this script:
use Person; my $anonymous = Person->new;
generates this error:
Missing required arguments: name at (eval 13) line 30.
Is there a way to get better error messages from Moo? Maybe with the correct filename and line number of the caller?

Replies are listed 'Best First'.
Re: Better error messages from Moo?
by poj (Abbot) on Jun 15, 2013 at 13:45 UTC
    Adding use Carp::Always to the script generates error :
    Missing required arguments: name at (eval 13) line 30. Person::new('Person') called at line 6
Re: Better error messages from Moo?
by tobyink (Canon) on Jun 15, 2013 at 15:55 UTC

    File it as a bug report on the Moo RT. It should certainly be feasible; Moo could keep track of the line has occurs on, then use this when evaling the constructor. I've been doing some work on improving Moo exceptions thrown from isa and coerce in the last couple of weeks, so I'd be happy to add required to the list.

    package Cow { use Moo; has name => (is => 'lazy', default => sub { 'Mooington' }) } say Cow->new->name
      Actually I already sent a patch for Moo to MST using Carp::croak() instead of die(), and he already rejected it.

        That's because that wouldn't actually have been an improvement.

        What tobyink is working on will be.

        -- mst

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://1039117]
Approved by ww
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having a coffee break in the Monastery: (4)
As of 2024-04-15 16:51 GMT
Find Nodes?
    Voting Booth?

    No recent polls found