Listing A显示了一个Java程序,它创建新的DOM文档失败了:
Listing A: DOMFail.Java
import org.apache.xerces.dom.*;
import org.w3c.dom.*;
public class DOMFail {
public static void main(String[] args) {
Document doc = new DocumentImpl();
Element rootElement;
try{
rootElement = doc.createElement("Order");
rootElement.setAttribute("<id", "109823");
doc.appendChild( rootElement );
} catch (DOMException e) {
switch(e.code) {
case DOMException.DOMSTRING_SIZE_ERR:
break;
case DOMException.HIERARCHY_REQUEST_ERR:
break;
case DOMException.INDEX_SIZE_ERR:
break;
case DOMException.INUSE_ATTRIBUTE_ERR:
break;
case DOMException.INVALID_ACCESS_ERR:
break;
case DOMException.INVALID_CHARACTER_ERR:
System.out.println("There is an invalid character");
break;
case DOMException.INVALID_MODIFICATION_ERR:
break;
case DOMException.INVALID_STATE_ERR:
break;
case DOMException.NAMESPACE_ERR:
break;
case DOMException.NO_DATA_ALLOWED_ERR:
break;
case DOMException.NO_MODIFICATION_ALLOWED_ERR:
break;
case DOMException.NOT_FOUND_ERR:
break;
case DOMException.NOT_SUPPORTED_ERR:
break;
case DOMException.SYNTAX_ERR:
break;
case DOMException.WRONG_DOCUMENT_ERR:
break;
default:
System.out.println("Unknown DOM exception");
break;
}
}
}
}
要注意,我们使用了一种切换机制来确定到底满足了哪个条件。这样我们就可以很容易地测试每个条件,直到我们找到正确的那个。
在这个例子里,我们已经在用于无效字符的条件里放置了一条消息。当你编译并运行这个例子的时候,你会看到这样一条信息:存在非法字符(There is an invalid character)。你会希望正确地处理每个条件,而不是将条件留作空白。
