Chris Winters > Workflow-0.17 > Workflow::Exception

Download:
Workflow-0.17.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  4
Open  2
View/Report Bugs
Module Version: 1.07   Source   Latest Release: Workflow-1.41

NAME ^

Workflow::Exception - Base class for workflow exceptions

SYNOPSIS ^

 # Standard usage
 use Workflow::Exception qw( workflow_error );
 
 my $user = $wf->context->param( 'current_user' );
 unless ( $user->check_password( $entered_password ) ) {
   workflow_error "User exists but password check failed";
 }
 
 # Pass a list of strings to form the message
 
 unless ( $user->check_password( $entered_password ) ) {
   workflow_error 'Bad login: ', $object->login_attempted;
 }
 
 # Using other exported shortcuts
 
 use Workflow::Exception qw( configuration_error );
 configuration_error "Field 'foo' must be a set to 'bar'";
 
 use Workflow::Exception qw( validation_error );
 validation_error "Validation for field 'foo' failed: $error";

DESCRIPTION ^

First, you should probably look at Exception::Class for more usage examples, why we use exceptions, what they are intended for, etc.

This is the base class for all workflow exceptions. It declares a handful of exceptions and provides shortcuts to make raising an exception easier and more readable.

METHODS ^

throw( @msg, [ \%params ])

This overrides throw() from Exception::Class to add a little syntactic sugar. Instead of:

 $exception_class->throw( message => 'This is my very long error message that I would like to pass',
                          param1  => 'Param1 value',
                          param2  => 'Param2 value' );

You can use:

 $exception_class->throw( 'This is my very long error message ',
                          'that I would like to pass',
                          { param1 => 'Param1 value',
                            param2 => 'Param2 value' } );

And everything will work the same. Combined with the SHORTCUTS this makes for very readable code:

 workflow_error "Something went horribly, terribly, dreadfully, "
                "frightfully wrong: $@",
                { foo => 'bar' };

SHORTCUTS ^

Workflow::Exception - import using workflow_error

Workflow::Exception::Condition - import using condition_error

Workflow::Exception::Configuration - import using configuration_error

Workflow::Exception::Persist - import using persist_error

Workflow::Exception::Validation - import using validation_error

SEE ALSO ^

Exception::Class

COPYRIGHT ^

Copyright (c) 2003-2004 Chris Winters. All rights reserved.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

AUTHORS ^

Chris Winters <chris@cwinters.com>

syntax highlighting: