文档

Java™教程
隐藏目录
错误处理
路径: Java API for XML Processing (JAXP)
教程: 处理限制

错误处理

建议应用程序在设置其中一种新属性时捕获org.xml.sax.SAXNotRecognizedException异常,以便应用程序可以在不支持这些属性的旧版本上正常工作。例如,可下载的示例代码包含以下方法isNewPropertySupported,该方法检测示例是否在支持JDK_GENERAL_ENTITY_SIZE_LIMIT属性的JDK版本上运行:

public boolean isNewPropertySupported() {
    try {
        SAXParser parser = getSAXParser(false, false, false);
        parser.setProperty(JDK_GENERAL_ENTITY_SIZE_LIMIT, "10000");
    } catch (ParserConfigurationException ex) {
        fail(ex.getMessage());
    } catch (SAXException ex) {
        String err = ex.getMessage();
        if (err.indexOf("Property '" + JDK_GENERAL_ENTITY_SIZE_LIMIT +
                                       "' is not recognized.") > -1) {
            //在此修补程序之前预期
            debugPrint("不支持新限制属性。示例未运行。");
            return false;
        }
    }
    return true;
}

当输入文件包含导致超过限制异常的构造时,应用程序可以检查错误代码以确定失败的性质。以下错误代码定义了这些限制:

错误代码的格式如下:

"JAXP" + 组件(两位数字)+ 错误类别(两位数字)+ 序列号

因此,代码JAXP00010001表示JAXP基础解析器安全限制EntityExpansionLimit


上一页: 使用限制
下一页: StAX