The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Class::Maker::Exception - exceptions tuned for Class::Maker

SYNOPSIS

        use Class::Maker qw(class);
        
        use Class::Maker::Exception qw(:try);
                
        {
        package Exception::Child;
        
                Class::Maker::class
                {
                        isa => [qw( Class::Maker::Exception )],
        
                        public =>
                        {
                                string => [qw( email )],
                        },
                };
        
        package Exception::ChildChild;
        
                Class::Maker::class
                {
                        isa => [qw( Exception::Child )],
        
                        public =>
                        {
                                string => [qw( name )],
                        },
                };
        }
        
        sub do_some_stuff
        {
                Exception::ChildChild->throw( email => 'bla@bla.de', name => 'johnny' );
        
        return;
        }
        
                try
                {
                        do_some_stuff();
        
                }
                catch Exception::ChildChild with
                {
                        foreach my $e (@_)
                        {
                                print Dumper $e;
                        }
                };

DESCRIPTION

This is mainly a wrapper to "Error" from CPAN. Because it has a very odd inheritance mechanism, this wrapper is needed as a workarround.

BUGS

Not critical: The "text" attribute is not working. Reading/Writing to it somehow goes into nirvana. I suppose "Error" has same clue about it. Would suggest to inherit from Class::Maker::Exception and add and new "info_text" attribute, which will work.

BASE CLASSES

Class::Maker::Exception

Has following structure (and inheritable attributes).

        class
        {                                       
                isa => [qw( Error )],
                
                public =>
                {
                        string => [qw( text package file )],
                        
                        integer => [qw( line )],
                },
        };

AUTHOR

Murat Uenalan

SEE ALSO

Error