http://www.perlmonks.org?node_id=996367


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"; } }

Replies are listed 'Best First'.
Re^2: Custom error messages and moose
by neilwatson (Priest) 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.