  | 
 
 
 
 |  
 |  | 
 
  
    | XML::LibXML::Error(3) | 
    User Contributed Perl Documentation | 
    XML::LibXML::Error(3) | 
   
 
XML::LibXML::Error - Structured Errors 
  eval { ... };
          if (ref($@)) {
            # handle a structured error (XML::LibXML::Error object)
          } elsif ($@) {
            # error, but not an XML::LibXML::Error object
          } else {
            # no error
          }
  $XML::LibXML::Error::WARNINGS=1;
  $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_num1 = $@->num1();
  $error_num2 = $@->num2();
  $string = $@->context();
  $offset = $@->column();
  $previous_error = $@->_prev();
The XML::LibXML::Error class is a tiny frontend to
    libxml2's structured error support. If XML::LibXML is compiled 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 $@->field()
    (where field is the field name). XML::LibXML::Error objects have the
    following fields: domain, code, level, file, line, nodename, message, str1,
    str2, str3, num1, num2, and _prev (some of them may be undefined). 
  - $XML::LibXML::Error::WARNINGS
 
  - 
    
  $XML::LibXML::Error::WARNINGS=1;
    
    Traditionally, XML::LibXML was suppressing parser warnings by
        setting libxml2's global variable xmlGetWarningsDefaultValue to 0. Since
        1.70 we do not change libxml2's global variables anymore; for backward
        compatibility, XML::LibXML suppresses warnings. This variable can be set
        to 1 to enable reporting of these warnings via Perl
        "warn" and to 2 to report hem via
        "die". 
   
  - as_string
 
  - 
    
  $message = $@->as_string();
    
    This function serializes an XML::LibXML::Error object to a
        string containing the full error message close to the message produced
        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 an XML::LibXML::Error to a string
        displaying 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", "namespace", "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", "validity". 
   
  - code
 
  - 
    
  $error_code = $@->code();
    
    Returns the actual libxml2 error code. The XML::LibXML::ErrNo
        module 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. 
   
  - num1
 
  - 
    
  $error_num1 = $@->num1();
    
    Error specific. Extra numeric information. 
   
  - num2
 
  - 
    
  $error_num2 = $@->num2();
    
    In recent libxml2 versions, this value contains a column
        number of the error or 0 if N/A. 
   
  - context
 
  - 
    
  $string = $@->context();
    
    For parsing errors, this field contains about 80 characters of
        the XML near the place where the error occurred. The field
        "$@->column()" contains the
        corresponding offset. Where N/A, the field is undefined. 
   
  - column
 
  - 
    
  $offset = $@->column();
    
    See "$@->column()"
      above. 
   
  - _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. 
   
 
Matt Sergeant, Christian Glahn, Petr Pajas 
2001-2007, AxKit.com Ltd. 
2002-2006, Christian Glahn. 
2006-2009, Petr Pajas. 
This program is free software; you can redistribute it and/or
    modify it under the same terms as Perl itself. 
 
 
  Visit the GSP FreeBSD Man Page Interface. Output converted with ManDoc.
  |