2012-12-03 40 views
2

我發現在OpenJDK的JAXB一些奇怪的代碼:奇怪的NullPointerException趕上

com.sun.xml.internal.bind.v2.model.impl.ModelBuilder

try { 
     XmlSchema s = null; 
     s.location(); 
    } catch (NullPointerException e) { 
     // as expected 
    } catch (NoSuchMethodError e) { 
     ... 
    } 

一些能解釋他們爲什麼這樣做?或者這只是一個需要修復的錯誤代碼。

回答

3

他們正在使用此代碼作爲測試來確定正在使用哪個版本的JAXB (JSR-222) API。參數location被添加到JAXB 2.1中的@XmlSchema,如果NoSuchMethodError被拋出,則使用JAXB 2.0 API。

看不出紋路158-177

的Javadoc - @ XmlSchema.location