=head1 NAME

Solaris::ProcessContract::Exceptions - Exceptions for Solaris::ProcessContract

=head1 SYNOPSIS

  use Solaris::ProcessContract;

  my $pc = Solaris::ProcessContract->new();

  eval
  {
    my $template = $pc->get_template();

    $template->activate();
  };

  if ( my $ex = Solaris::ProcessContract::Exception->caught() )
  {
    # Handle error
  }

=head1 DESCRIPTION

This module uses L<Exception::Class> for error handling.

You don't need to worry about exception handling if you don't want to.  Your
code will just die with appropriate error if an exception happens and you don't
do anything to catch it.

=head1 EXCEPTIONS

The following types of exceptions are available.  All of can be caught with
L</"Solaris::ProcessContract::Exception">, so you only need to worry about
specific types if you want to do specific error handling.

=head2 Solaris::ProcessContract::Exception

A generic exception for anything that goes in L<Solaris::ProcessContract>.

All of our other exceptions are of this type, so doing: 

  if ( my $ex = Solaris::ProcessContract::Exception->caught() )

will catch the others, too.

=head2 Solaris::ProcessContract::Exception::XS

An exception for anything that goes wrong when talking to L<libcontract(3)|http://docs.oracle.com/cd/E26505_01/html/816-5173/libcontract-3lib.html>.

=head2 Solaris::ProcessContract::Exception::Params

An exception for any time you try and pass the wrong parameters to a method.

=head1 SEE ALSO

=over

=item L<Solaris::ProcessContract>

=item L<Exception::Class>

=back

=head1 AUTHOR

Danny Warren

