Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re: Custom error messages and moose

by remiah (Hermit)
on Sep 29, 2012 at 11:57 UTC ( #996367=note: print w/ replies, xml ) Need Help??


in reply to Custom error messages and moose

Do you show me your error message? if I return undef to isa 'Str' attribute, I will see like this.

Attribute (ip_address) does not pass the type constraint because: Validation failed for 'Str' with value undef at reader test::ip_address (defined at 069.pl line 7) line 15
	test::ip_address('test=HASH(0x284a2320)') called at 069.pl line 35

Or, Is there some reason you can't die like this ?
sub get_ip_address { my $self = shift; my $allclasses_file = $self->allclasses_file; my $ip_address; if ( $allclasses_file =~ m/_([^_]+$)/ ) { $ip_address = $1; return $ip_address; } else { die "not good ip\n"; } }


Comment on Re: Custom error messages and moose
Download Code
Re^2: Custom error messages and moose
by neilwatson (Curate) on Sep 29, 2012 at 12:09 UTC
    There is pretty verbose:
    Use of uninitialized value $ip in gethostbyaddr at /home/neil/perl5/li +b/perl5/Evolvethinking/Unicorn.pm line 67, <FH> line 1. Attribute (fqhn) does not pass the type constraint because: Validation + failed for 'Str' with value undef at /home/neil/perl5/lib/perl5/x86_ +64-linux-thread-multi/Mouse/Util.pm line 383, <FH> line 1. Mouse::Util::throw_error('Mouse::Meta::Attribute=HASH(0x20342d +0)', 'Attribute (fqhn) does not pass the type constraint because: V.. +.', 'data', undef, 'depth', -1) called at /home/neil/perl5/lib/perl5/ +Evolvethinking/Unicorn.pm line 78 Unicorn::insert_record('Unicorn=HASH(0x20d3308)') called at /h +ome/neil/bin/p1.pl line 30

    Yes, I can put a die or warn in the sub but, I'm wondering if there is a more Moose like way.

    Neil Watson
    watson-wilson.ca

      If you set Environment variable MOOSE_ERROR_STYLE with

      export MOOSE_ERROR_STYLE=croak
      
      , you can cut confess style backtrace output.

      There seems to be discussion for error handling of Moose. I have no further experience for this. regards.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://996367]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (7)
As of 2014-07-11 09:56 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    When choosing user names for websites, I prefer to use:








    Results (224 votes), past polls