Scusa...
Ammetto che non sono stato chiaro, ma oggi ho un mal di testa che non mi fa pensare...

prima, invece di leggere xml con un parser, leggevo il testo come fosse un file txt, e poi lo analizzavo a mano, cercando gli elementi e presumendo che fossero messi bene uno per riga.
Ho iniziato a usare il parser solo oggi perché mi sono accorto che questo metodo non funziona benissimo.

Il blocco di errore è formato da 4 tag, di cui l'unico obligatorio è il terzo (quindi <un'altra_info>) fa parte del primo errore.

So che è strutturato male, ma, come ogni cosa su cui ho a che fare da quando ho iniziato il programma "è già stato mandato dai clienti e non è possibile cambiarlo"

Quindi cercavo un metodo buono che mi permettesse di estrarre le info.

Parlavo di eccezioni sbagliando. Il SAX legge il file generando degli eventi (non eccezioni).
Potrei usare il SAX modificando poco la logica base del programma che leggeva le righe come string, ma con gli eventi è molto complesso elaborare il file. per questo speravo in un'altra tecnica