XML::LibXML::Error

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
XML::LibXML::Error(3)User Contributed Perl DocumentationXML::LibXML::Error(3)



NAME
       XML::LibXML::Error - Structured Errors

SYNOPSIS
	 eval { ... };
		 if (ref($@)) {
		   # handle a structured error (XML::LibXML::Error object)
		 } elsif ($@) {
		   # error, but not an XML::LibXML::Error object
		 } else {
		   # no error
		 }

	 $message = $@->as_string();
	 print $@->dump();
	 $error_domain = $@->domain();
	 $error_code = $@->code();
	 $error_message = $@->message();
	 $error_level = $@->level();
	 $filename = $@->file();
	 $line = $@->line();
	 $nodename = $@->nodename();
	 $error_str1 = $@->str1();
	 $error_str2 = $@->str2();
	 $error_str3 = $@->str3();
	 $error_int1 = $@->int1();
	 $error_int2 = $@->int2();
	 $previous_error = $@->_prev();

DESCRIPTION
       The XML::LibXML::Error class is a tiny frontend to libxml2’s struc-
       tured error support. If XML::LibXML is compied with structured error
       support, all errors reported by libxml2 are transformed to
       XML::LibXML:Error objects. These objects automatically serialize to
       the corresponding error messages when printed or used in a string
       operation, but as objects, can also be used to get a detailed and
       structured information about the error that occurred.

       Unlike most other XML::LibXML objects, XML::LibXML::Error doesn’t wrap
       an underlying libxml2 structure directly, but rather transforms it to
       a blessed Perl hash reference containing the individual fields of the
       structured error information as hash key-value pairs. Individual items
       (fields) of a structured error can either be obtained directly as
       $@->{field}, or using autoloaded methods such as as $@->field() (where
       field is the field name). XML::LibXML::Error objects have the follow-
       ing fields: domain, code, level, file, line, nodename, message, str1,
       str2, str3, int1, int2, and _prev (some of them may be undefined).

       as_string
	     $message = $@->as_string();

	   This functions takes serializes a XML::LibXML::Error object to a
	   string containing the full error message close to the message pro-
	   duced by libxml2 default error handlers and tools like xmllint.
	   This method is also used to overload "" operator on
	   XML::LibXML::Error, so it is automatically called whenever
	   XML::LibXML::Error object is treated as a string (e.g. in print
	   $@).

       dump
	     print $@->dump();

	   This function serializes a XML::LibXML::Error to a string display-
	   ing all fields of the error structure individually on separate
	   lines of the form ’name’ => ’value’.

       domain
	     $error_domain = $@->domain();

	   Returns string containing information about what part of the
	   library raised the error. Can be one of: "parser", "tree", "names-
	   pace", "validity", "HTML parser", "memory", "output", "I/O",
	   "ftp", "http", "XInclude", "XPath", "xpointer", "regexp", "Schemas
	   datatype", "Schemas parser", "Schemas validity", "Relax-NG
	   parser", "Relax-NG validity", "Catalog", "C14N", "XSLT", "valid-
	   ity".

       code
	     $error_code = $@->code();

	   Returns the actual libxml2 error code. The XML::LibXML::ErrNo mod-
	   ule defines constants for individual error codes. Currently
	   libxml2 uses over 480 different error codes.

       message
	     $error_message = $@->message();

	   Returns a human-readable informative error message.

       level
	     $error_level = $@->level();

	   Returns an integer value describing how consequent is the error.
	   XML::LibXML::Error defines the following constants:

	   *   XML_ERR_NONE = 0

	   *   XML_ERR_WARNING = 1 : A simple warning.

	   *   XML_ERR_ERROR = 2 : A recoverable error.

	   *   XML_ERR_FATAL = 3 : A fatal error.

       file
	     $filename = $@->file();

	   Returns the filename of the file being processed while the error
	   occurred.

       line
	     $line = $@->line();

	   The line number, if available.

       nodename
	     $nodename = $@->nodename();

	   Name of the node where error occurred, if available. When this
	   field is non-empty, libxml2 actually returned a physical pointer
	   to the specified node.  Due to memory management issues, it is
	   very difficult to implement a way to expose the pointer to the
	   Perl level as a XML::LibXML::Node. For this reason,
	   XML::LibXML::Error currently only exposes the name the node.

       str1
	     $error_str1 = $@->str1();

	   Error specific. Extra string information.

       str2
	     $error_str2 = $@->str2();

	   Error specific. Extra string information.

       str3
	     $error_str3 = $@->str3();

	   Error specific. Extra string information.

       int1
	     $error_int1 = $@->int1();

	   Error specific. Extra numeric information.

       int2
	     $error_int2 = $@->int2();

	   Error specific. Extra numeric information.

       _prev
	     $previous_error = $@->_prev();

	   This field can possibly hold a reference to another
	   XML::LibXML::Error object representing an error which occurred
	   just before this error.

AUTHORS
       Matt Sergeant, Christian Glahn, Petr Pajas

VERSION
       1.66

COPYRIGHT
       2001-2007, AxKit.com Ltd; 2002-2006 Christian Glahn; 2006-2008 Petr
       Pajas, All rights reserved.



perl v5.8.8			  2008-11-11		XML::LibXML::Error(3)