该类ErrorHandler实现的接口org.xml.sax.helpers.DefaultHandler为SAX解析中的错误处理机制提供了一些方法。该方法是warning(),error()和fatalError()。
package org.nhooo.example.xml; import org.xml.sax.SAXException; import org.xml.sax.SAXParseException; import org.xml.sax.helpers.DefaultHandler; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import java.io.InputStream; public class SAXErrorHandlerDemo { public static void main(String[] args) throws Exception { SAXErrorHandlerDemo demo = new SAXErrorHandlerDemo(); demo.run(); } public void run() throws Exception { // 创建SAXParserFactory和SAXParser实例。 SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser parser = factory.newSAXParser(); // 使用MySAXHandler解析error.xml文件 // DefaultHandler实现。 InputStream is = getClass().getResourceAsStream("/error.xml"); DefaultHandler handler = new MySAXHandler(); parser.parse(is, handler); } // 覆盖由ErrorHandler定义的错误处理方法 //接口。此方法将处理由 // 解析过程。 class MySAXHandler extends DefaultHandler { @Override public void warning(SAXParseException e) throws SAXException { System.out.println("warning : " + e.getMessage()); } @Override public void error(SAXParseException e) throws SAXException { System.out.println("error : " + e.getMessage()); } @Override public void fatalError(SAXParseException e) throws SAXException { System.out.println("fatalError: " + e.getMessage()); } } }