update distar url
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Exception / Interface.pm
CommitLineData
ede5238f 1package Catalyst::Exception::Interface;
2
2aba16c2 3use Moose::Role;
80e287ba 4use namespace::clean -except => 'meta';
5
6use overload
7 q{""} => sub { $_[0]->as_string },
8 fallback => 1;
ede5238f 9
10requires qw/as_string throw rethrow/;
11
121;
b6c6af73 13
14__END__
15
16=head1 NAME
17
6d2a85aa 18Catalyst::Exception::Interface - Role defining the interface for Catalyst exceptions
b6c6af73 19
20=head1 SYNOPSIS
21
22 package My::Catalyst::Like::Exception;
23 use Moose;
24 use namespace::clean -except => 'meta';
a62b43cd 25
6d2a85aa 26 with 'Catalyst::Exception::Interface';
27
b6c6af73 28 # This comprises the required interface.
29 sub as_string { 'the exception text for stringification' }
96bd9dbe 30 sub throw { shift; die @_ }
31 sub rethrow { shift; die @_ }
a62b43cd 32
b6c6af73 33=head1 DESCRIPTION
34
35This is a role for the required interface for Catalyst exceptions.
36
37It ensures that all exceptions follow the expected interface,
38and adds overloading for stringification when composed onto a
39class.
40
b6c6af73 41=head1 REQUIRED METHODS
42
43=head2 as_string
44
45=head2 throw
46
47=head2 rethrow
48
49=head1 METHODS
50
51=head2 meta
52
53Provided by Moose
54
6d2a85aa 55=head1 SEE ALSO
56
57=over 4
58
59=item L<Catalyst>
60
61=item L<Catalyst::Exception>
62
63=back
64
b6c6af73 65=head1 AUTHORS
66
67Catalyst Contributors, see Catalyst.pm
68
69=head1 COPYRIGHT
70
71This library is free software. You can redistribute it and/or modify
72it under the same terms as Perl itself.
73
74=cut