2015-09-01 2 views
2

SAXException est étendue par SAXNotRecognizedException, SAXNotSupportedException.Gestion des exceptions: L'exception de classe parente interceptera-t-elle également l'exception enfant?

try { 
    //do Something 
} catch(SAXException e) {} 
    catch(ParserConfigurationException pce) {} 

se laisse dire « faire quelque chose » a un code qui jette SAXNotRecognizedException or SAXNotSupportedException et si cela arrive, rien ne devrait se produire. Si SAXNotRecognizedException se produit alors rien ne se passera puisque c'est un bloc vide. De même pour ParserConfigurationException. En ce moment, même si je dis ne rien faire pour ParserConfigurationException, une exception pour ParserConfigurationException est également levée.

Je veux fondamentalement qu'il ne fasse rien quand SAXNotRecognizedException or SAXNotSupportedException se produit.

+0

Eh bien, rien ne se passera quand même avec ce code lorsque vous attrapez SAXException (ou une sous-classe). –

Répondre

5

Oui, les exceptions parent capturent également les exceptions enfants. Un exemple connu est quand vous attrapez Exception. Ce bloc try va attraper toutes sortes (enfants) exceptions telles que NullPointer etc.

1

Si vous aimez attraper seulement SAXNotRecognizedException ou SAXNotSupportedException, une meilleure façon de le faire depuis Java 7 est:

try { 
    // Do something 
} catch(SAXNotRecognizedException | SAXNotSupportedException e) { 
    // Do nothing 
} 

Note, Les autres SAXExceptions ne seront pas interceptées.