Quale eccezione lanciare quando l'XML non è strutturato correttamente?

2

Quale tipo di eccezione dovrei lanciare se l'XML può essere analizzato, ma non è strutturato nel modo previsto dal programma - nomi di tag errati ecc.

Esempio - Previsto

<xml>
 <tag1>blabla</tag1>
 <tag2> <tag3>blabla </tag3> </tag2>
</xml>

Esempio - attuale

<xml>
 <tag1>blabla</tag1>
 <tag2> blabla </tag2>
</xml>

Esiste un'eccezione standard per questo caso? La domanda riguarda Java, sto usando le classi standard javax.xml per l'analisi.

    
posta kutschkem 15.05.2018 - 11:50
fonte

1 risposta

2
  • Puoi dare un'occhiata a SAXParseException se pensi che corrisponda alle tue esigenze. È incluso nel JDK, quindi è disponibile senza alcuna dipendenza esterna. È un'eccezione controllata, quindi sarai in grado di forzare i chiamanti del tuo codice a catturare esplicitamente l'eccezione.

  • Se stai analizzando il codice XML con qualche libreria e hai un XSD o un DTD, ci sono alte probabilità che la libreria stessa offra già un'eccezione che di solito viene generata quando l'analisi fallisce.

  • Altrimenti puoi scegliere di avvolgere qualsiasi eccezione resa dalla libreria di analisi in un'eccezione personalizzata più orientata al business, cioè InvalidXmlException .

  • Penso che i consigli @neil siano grandi se l'XML è un input del tuo sistema. Se usi questo tipo di XML per altri significati, come la configurazione, forse un InvalidStateException è più adatto?

Indipendentemente da ciò che scegli, sii consapevole di questi:

  • cerca di non introdurre dipendenze indesiderate nelle librerie esterne, se possibile;
  • documento in javadoc quando viene lanciata l'eccezione per consentire ai chiamanti di comprendere correttamente come rilevare l'eccezione.
risposta data 15.05.2018 - 15:11
fonte

Leggi altre domande sui tag