Bonjour, j' essaie de parser un fichier xml avec jakarta Digester et ça marche assez bien. Je voudrais aussi gérer les erreurs et pour ça j' ai introduit une petite erreur dans mon xml. Digester me renvoie une SAXParseException, mais je ne passe pas dans le catch... pourquoi ?
un extrait de mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
//classe CVDigester
public OnlineCV cvParser (String fileName){
	Digester digester = new Digester();
	OnlineCV cv = null;
        File inputFile = new File( fileName );
//blablabla...
		try {
			cv = (OnlineCV)digester.parse( inputFile );
		}
                catch(org.xml.sax.SAXParseException e) {
			System.out.println("erreur de parsing pour le fichier"+fileName);
			}
		catch(org.xml.sax.SAXException e) {
			System.out.println("erreur de parsing (2) pour le fichier "+fileName);
			}
		catch (Exception e){
			System.out.println("plop");
		}
 
		System.out.println("parsing terminé !");
		return cv;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
//main
	public static void main(String args[]){
		CVDigester cvDigester = new CVDigester();
		OnlineCV cvMain;
		cvMain = cvDigester.cvParser((String)args[0]);
...

Et à l' exécution :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
GRAVE: Parse Error at line 21 column 27: Attribute "nom_usage" is required and must be specified for element type "etat_civil".
org.xml.sax.SAXParseException: Attribute "nom_usage" is required and must be specified for element type "etat_civil".
	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.addDTDDefaultAttrsAndValidate(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleStartElement(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.startElement(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
	at org.apache.commons.digester.Digester.parse(Digester.java:1728)
	at cvParser.CVDigester.cvParser(CVDigester.java:430)
	at cvParser.MainTest.main(MainTest.java:15)
 
parsing terminé !
Merci d' avance