# 错误处理

> 原文： [https://docs.oracle.com/javase/tutorial/jaxp/limits/error.html](https://docs.oracle.com/javase/tutorial/jaxp/limits/error.html)

建议应用程序在设置其中一个新属性时捕获 `org.xml.sax.SAXNotRecognizedException` 异常，以便应用程序在不支持它们的旧版本上正常工作。例如，可下载的[示例代码](sample.html)包含以下方法， `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) {
            //expected before this patch
            debugPrint("New limit properties not supported. Samples not run.");
            return false;
        }
    }
    return true;
}

```

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

*   `EntityExpansionLimit` ：JAXP00010001
*   `ElementAttributeLimit` ：JAXP00010002
*   `MaxEntitySizeLimit` ：JAXP00010003
*   `TotalEntitySizeLimit` ：JAXP00010004
*   `MaxXMLNameLimit` ：JAXP00010005
*   `maxElementDepth` ：JAXP00010006
*   `EntityReplacementLimit` ：JAXP00010007

错误代码具有以下格式：

```
"JAXP" + components (two digits) + error category (two digits) + sequence number

```

因此，代码 JAXP00010001 代表 JAXP 基本解析器安全限制 `EntityExpansionLimit` 。