创建新的XMLGregorianCalendar时忽略DatatypeConfigurationException

Mik*_*Lin 6 java exception-handling jax-ws

在创建这样的新XMLGregorianCalendar实例时,我是否真的需要处理DatatypeConfigurationException异常,还是可以安全地抑制它?

try {
    header.setRequestDateTime(
                DatatypeFactory.newInstance().newXMLGregorianCalendar(
                        new GregorianCalendar()));
} catch (DatatypeConfigurationException e) {
    // pass
}
Run Code Online (Sandbox Code Playgroud)

我对文档的解释和一些粗略的逻辑说,除非我给它一些不好的输入,否则这不会引发异常.在上面的例子中,情况并非如此.以下是JavaDocs对此的评价:

如果存在由DATATYPEFACTORY_PROPERTY指定的系统属性"javax.xml.datatype.DatatypeFactory",则实例化具有属性值的名称的类.在实例化过程中抛出的任何异常都被包装为 DatatypeConfigurationException.

我是否正确地认为我可以安全地抑制此检查异常?

And*_*ger 5

类型的例外DatatypeConfigurationException可能静态方法调用中发生

DataTypeFatory factory = DataTypeFactory.newInstance();
Run Code Online (Sandbox Code Playgroud)

因此,您只需要对待一次.但是你应该对它进行一次处理,否则根本就无法创建XMLGregorianCalendar实例.

说清楚这个电话

XMLGregorianCalendar xmlCal = factory.newXMLGregorianCalendar(new GregorianCalendar());
Run Code Online (Sandbox Code Playgroud)

DatatypeConfigurationException在创建GregorianCalendar实例的XML表示时,永远不会抛出a ,因此您不必对其进行处理.- 从后面的Java SE API调用只能NullPointerException发生一次.

  • 为什么DataTypeFactory.newInstance()会抛出DataTypeConfigurationException? (2认同)