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

NAME

Class::ReluctantORM::Exception - OO Exceptions

SYNOPSIS

  use Class::ReluctantORM::Exception;

  # In API code:

  # dies locally
  Class::ReluctantORM::Exception::Params::Missing->throw(param => 'id');

  # dies from caller's perspective
  Class::ReluctantORM::Exception::Params::Missing->croak(param => 'id');

  # dies from caller's caller's perspective
  Class::ReluctantORM::Exception::Params::Missing->croak(param => 'id', frames => 2);

  # To catch:
  eval { something_dangerous(); }
  if (my $e = Class::ReluctantORM::Exception::Params::Missing->caught()) {
    my $p = $e->param(); # Find out what was missing
    print $e; #  Stringifies nicely
  } else {
    die $@; # Pass on unrecognized exceptions
  }

  # Special handler included for working with OmniTI::DB connections....
  my $dbh = NatGeo::DB::Magazine->new();
  $dbh->set_handle_error(Class::ReluctantORM::Exception->make_db_error_handler());

DESCRIPTION

Uses Exception::Class to define a wide variety of exceptions.

STRINGIFICATION

Any extra fields defined for a particular exception class will be included in the stringification of the exception, like this:

  Error message
     field1 => value1
     field2 => value2

EXCEPTIONS

Class::ReluctantORM::Exception::Param

Exceptions related to parameter passing. Expect fields 'param'.

Class::ReluctantORM::Exception::Param::Missing
Class::ReluctantORM::Exception::Param::Empty

An array or hash ref turned out to be present but empty.

Class::ReluctantORM::Exception::Param::ExpectedHash

Thrown when the method uses named parameters, but an odd number of parameters were provided. param field is not used.

Class::ReluctantORM::Exception::Param::ExpectedHashRef
Class::ReluctantORM::Exception::Param::ExpectedArrayRef
Class::ReluctantORM::Exception::Param::ExpectedHashref
Class::ReluctantORM::Exception::Param::MutuallyExclusive

Used when two parameters cannot both be present. Use fields 'param' and 'other_param'.

Class::ReluctantORM::Exception::Param::Duplicate

Thrown when the same named parameter is used more than once.

AUTHOR

  Clinton Wolfe