
在使用基于Java的XML剖析器时,你常常要应付异常(exception)的处理。有些异常很容易处理,而其他的要更困难一些。在本文里,我们会看一些在使用XML文档时常见的异常,并探讨一下如何处理好这些异常。
DOM异常
在使用DOM剖析器进行剖析操作的时候,XML文档会被立即处理并保存在内存里。内存里的对象会被做一个文档对象模型(Document Object Model)来参照——这基本上就是一种用于访问底层XML文档的面向对象的方法。在DOM里处理XML文档的时候,很多东西都会出错。
大多数DOM下的异常都是作为DOMException类的一个实例发生的。这个类支持15种不同的、具体的异常条件。每种条件都被指定为DOMException类的一个成员,叫做code。除了这个code成员,DOMException类还包含一组15个静态成员,它们被用来确定异常的条件。
这15个条件是:
- DOMSTRING_SIZE_ERR
- HIERARCHY_REQUEST_ERR
- INDEX_SIZE_ERR
- INUSE_ATTRIBUTE_ERR
- INVALID_ACCESS_ERR
- INVALID_CHARACTER_ERR
- INVALID_MODIFICATION_ERR
- INVALID_STATE_ERR
- NAMESPACE_ERR
- NO_DATA_ALLOWED_ERR
- NO_MODIFICATION_ALLOWED_ERR
- NOT_FOUND_ERR
- NOT_SUPPORTED_ERR
- SYNTAX_ERR
- WRONG_DOCUMENT_ERR
当DOMException出现的时候,如果不检查异常对象里的code,那么你就不会知道到底是这些条件中的哪一个导致了这个异常。为了正确地处理这个异常,你将需要确定是哪个条件导致了这个异常。