package HTML::DOM::Exception; use constant { # DOMException: INDEX_SIZE_ERR => 1, DOMSTRING_SIZE_ERR => 2, HIERARCHY_REQUEST_ERR => 3, WRONG_DOCUMENT_ERR => 4, INVALID_CHARACTER_ERR => 5, NO_DATA_ALLOWED_ERR => 6, NO_MODIFICATION_ALLOWED_ERR => 7, NOT_FOUND_ERR => 8, NOT_SUPPORTED_ERR => 9, INUSE_ATTRIBUTE_ERR => 10, INVALID_STATE_ERR => 11, SYNTAX_ERR => 12, INVALID_MODIFICATION_ERR => 13, NAMESPACE_ERR => 14, INVALID_ACCESS_ERR => 15, # EventException: UNSPECIFIED_EVENT_TYPE_ERR => 0, }; use Exporter 5.57 'import'; our $VERSION = '0.035'; our @EXPORT_OK = qw' INDEX_SIZE_ERR DOMSTRING_SIZE_ERR HIERARCHY_REQUEST_ERR WRONG_DOCUMENT_ERR INVALID_CHARACTER_ERR NO_DATA_ALLOWED_ERR NO_MODIFICATION_ALLOWED_ERR NOT_FOUND_ERR NOT_SUPPORTED_ERR INUSE_ATTRIBUTE_ERR INVALID_STATE_ERR SYNTAX_ERR INVALID_MODIFICATION_ERR NAMESPACE_ERR INVALID_ACCESS_ERR UNSPECIFIED_EVENT_TYPE_ERR '; our %EXPORT_TAGS = (all => [@EXPORT_OK]); use overload fallback => 1, '0+' => \&code, '""' => sub { $_[0][1] =~ /^(.*?)\n?\z/s; "$1\n" }, ; sub new { bless [@_[1,2]], $_[0]; } sub code { $_[0][0] } 'true' __END__ =head1 NAME HTML::DOM::Exception - The Exception interface for HTML::DOM =head1 SYNOPSIS use HTML::DOM::Exception 'INVALID_CHARACTER_ERR'; eval { die new HTML::DOM::Exception INVALID_CHARACTER_ERR, 'Only ASCII characters allowed!' }; $@ == INVALID_CHARACTER_ERR; # true print $@; # prints "Only ASCII characters allowed!\n"; =head1 DESCRIPTION This module implementations the W3C's DOMException and EventException interfaces. HTML::DOM::Exception objects stringify to the message passed to the constructer and numify to the error number (see below, under L<'EXPORTS'>). =head1 METHODS =over 4 =item $errr = new HTML::DOM::Exception $type, $message This class method creates a new exception object. C<$type> is expected to be an integer (you can use the constants listed under L<'EXPORTS'>). C<$message> is the error message. =item $errr->code Returns the error code. Same as C<0+$errr>. =cut sub new { bless [@_[1,2]], shift; } =head1 EXPORTS The following constants are optionally exported. The descriptions are copied from the DOM spec. =over 4 =item INDEX_SIZE_ERR (1) If index or size is negative, or greater than the allowed value =item DOMSTRING_SIZE_ERR (2) If the specified range of text does not fit into a DOMString =item HIERARCHY_REQUEST_ERR (3) If any node is inserted somewhere it doesn't belong =item WRONG_DOCUMENT_ERR (4) If a node is used in a different document than the one that created it (that doesn't support it) =item INVALID_CHARACTER_ERR (5) If an invalid character is specified, such as in a name. =item NO_DATA_ALLOWED_ERR (6) If data is specified for a node which does not support data =item NO_MODIFICATION_ALLOWED_ERR (7) If an attempt is made to modify an object where modifications are not allowed =item NOT_FOUND_ERR (8) If an attempt was made to reference a node in a context where it does not exist =item NOT_SUPPORTED_ERR (9) If the implementation does not support the type of object requested =item INUSE_ATTRIBUTE_ERR (10) If an attempt is made to add an attribute that is already inuse elsewhere =item INVALID_STATE_ERR (11) If an attempt is made to use an object that is not, or is no longer, usable =item SYNTAX_ERR (12) If an invalid or illegal string is specified =item INVALID_MODIFICATION_ERR (13) If an attempt is made to modify the type of the underlying object =item NAMESPACE_ERR (14) If an attempt is made to create or change an object in a way which is incorrect with regard to namespaces =item INVALID_ACCESS_ERR (15) If a parameter or an operation is not supported by the underlying object =item UNSPECIFIED_EVENT_TYPE_ERR (0) If the Event's type was not specified by initializing the event before the method was called. Specification of the Event's type as null or an empty string will also trigger this exception. =back =head1 SEE ALSO L