=head1 NAME

Apache::*::Error - Exception classes for Apache::Request, Apache::Upload, Apache::Cookie::Jar and Apache::Cookie

=for testing
    use Apache2;
    use Apache::Upload;
    use Apache::Cookie;
    use APR::Error;
    use APR::Pool;
    $r = APR::Pool->new;
    $req = Apache::Request->new($r);
    $req->body_status(0);
    $req->parse; # XXX sets up body table
    $u = Apache::Upload->new($r, name => "foo", file => __FILE__);
    $req->body->add($u);
    $jar = Apache::Cookie::Jar->new($r);
    $c = Apache::Cookie->new($r, name => "foo", value => "1");
    $jar->cookies->add($c);




=head1 SYNOPSIS

=for example begin

    $req = Apache::Request->new($r);
    $jar = Apache::Cookie::Jar->new($r);

    $req->args_status(1); # artificial error status = 1 for I<query-string> parser
    $jar->status(2);      # artificial error status = 2 for I<Cookie> header parser

    eval { $req->parse };
    ok $@->isa("Apache::Request::Error");
    ok $@ == 1;
    eval { @cookies = $jar->cookies };
    ok $@->isa("Apache::Cookie::Jar::Error");
    ok $@ == 2;
    @cookies = $@->cookies; # same method does not fail on Error object

=for example end

=for example_testing
    ok @cookies == 1;




=head1 DESCRIPTION

This manpage documents the Apache::*::Error classes provided by 
the Apache::Request, Apache::Upload, and Apache::Cookie modules.
Error classes are all derived from APR::Error and the class
which first produced the error.  Unlike the object that created it, 
an Error object will not itself throw an error by calling its methods.




=head1 Apache::Request::Error

These exceptions are derived from APR::Error and Apache::Request,
and indicate that an error occurred during param parsing.


=for example begin



=for example end

=for example_testing




=head1 Apache::Upload::Error

These exceptions are derived from APR::Error and Apache::Upload, 
and indicate that some Apache::Upload method failed (often caused
by a filesystem error).


=for example begin



=for example end

=for example_testing




=head1 Apache::Cookie::Jar::Error

These exceptions are derived from APR::Error and Apache::Cookie::Jar,
and indicate that the cookie parser failed to successfully parse the
incoming Cookie header.


=for example begin



=for example end

=for example_testing




=head1 Apache::Cookie::Error

These exceptions are derived from APR::Error and Apache::Cookie.
Their presence indicates that an Apache::Cookie method failed.
Typically they are caused by 

        1) attempting to bake(2) a non-compliant cookie, 
        2) attempting to set an unsupported cookie attribute.

=for example begin



=for example end

=for example_testing




=head1 SEE ALSO

L<Apache::Request>, L<Apache::Cookie>, L<Apache::Upload>
APR::Error(3)




=head1 COPYRIGHT

  Copyright 2003-2004  The Apache Software Foundation

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.

