在创建这样的新XMLGregorianCalendar
实例时,我是否真的需要处理DatatypeConfigurationException
异常,还是可以安全地排除它?
try {
header.setRequestDateTime(
DatatypeFactory.newInstance().newXMLGregorianCalendar(
new GregorianCalendar()));
} catch (DatatypeConfigurationException e) {
// pass
}
我对the documentation的解释和一些粗略的逻辑说,除非我给它一些不好的输入,否则这不会真正引发异常。在上面的示例中情况并非如此。这是JavaDocs所说的:
如果DATATYPEFACTORY_PROPERTY指定了系统属性,
存在“javax.xml.datatype.DatatypeFactory”,其名称为
该属性的值被实例化。期间抛出的任何异常
实例化过程包装为
DatatypeConfigurationException。
我认为我可以安全地抑制此检查的异常吗?
最佳答案
DatatypeConfigurationException
类型的异常可能在静态方法调用中仅在中发生DataTypeFatory factory = DataTypeFactory.newInstance();
因此,您必须只将它对待一次。但是您应该对待它一次,,否则根本无法创建XMLGregorianCalendar实例。
清楚地说出电话
XMLGregorianCalendar xmlCal = factory.newXMLGregorianCalendar(new GregorianCalendar());
从不不会抛出
DatatypeConfigurationException
,因此在创建GregorianCalendar
实例的XML表示形式时,您不必对其进行处理。 -从后面的调用中的Java SE API开始,只能出现NullPointerException
。