Gestionar los errores durante la creación de un DOM

2099 vistas

Al igual que para SAX, podemos controlar los errores durante la construcción de un Document gracias a un ErrorHandler.

Por ejemplo:



java
  1. public class ControlDeErrores implements ErrorHandler{
  2.  
  3.   protected String message(SAXParseException e){
  4.       String message = "Mensaje: " + e.getMessage() + "\n";
  5.       message += "LÃnea "+e.getLineNumber()+", columna "+e.getColumnNumber()+"\n";
  6.       message += "Public id : "+e.getPublicId()+"\n";
  7.       message += "System id : "+e.getSystemId();
  8.       return message;
  9.   }
  10.  
  11.   protected void printSAXException(SAXParseException e){
  12.       System.out.println(message(e));
  13.       if(e.getException() != null){
  14.         e.getException().printStackTrace();
  15.       }
  16.   }
  17.  
  18.   public void warning(SAXParseException exception) throws SAXException{
  19.       System.out.println("*** Warning ***");
  20.       printSAXException(exception);
  21.   }
  22.  
  23.   public void error(SAXParseException exception) throws SAXException{
  24.       System.out.println("*** Error ***");
  25.       printSAXException(exception);
  26.   }
  27.  
  28.   public void fatalError(SAXParseException exception) throws SAXException{
  29.       String message = "*** Error fatal ***\n";
  30.       message += message(exception);
  31.       SAXException se = new SAXException(message, exception);
  32.       throw se;
  33.   }
  34. }



Ejemplo de uso:



java
  1. // creación de la factory de documents
  2. DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  3.  
  4. // creación y configuración del constructor de documents
  5. DocumentBuilder constructor = factory.newDocumentBuilder();
  6. constructor.setErrorHandler(new ControlDeErrores());
  7. Document documento = constructor.parse(new File("EjempleDOM.xml"));