Я читаю строки XML из файла и хочу продолжить чтение последующих строк, даже если одна из них была в недопустимом формате. Итак, как мне продолжить мою программу, когда неправильная строка XML дает фатальную ошибку?
Я пытался использовать обработку исключений, но все равно выдает фатальную ошибку, если XML неправильно отформатирован.
Document doc = null;
try {
doc = dBuilder.parse(xmlFile);
}
catch(Exception e){
System.out.println(e);
return;
}
Вот как выглядит консоль: -
[Fatal Error] IP.xml:22:24: The element type "ValueDate" must be terminated by the matching end-tag "". org.xml.sax.SAXParseException; systemId: file:/D:/Selenium_Workspace/stubvirtualization/IP.xml; lineNumber: 22; columnNumber: 24; The element type "ValueDate" must be terminated by the matching end-tag "".
Программа выводит сообщение об ошибке, но продолжает работать, не так ли?
@FedericoklezCulloca, вторая строка - это «распечатанное исключение», прежде чем оно будет напечатано, оно уже дало [Неустранимая ошибка]




Часть [Fatal Error] — это просто сообщение журнала, не связанное с печатью исключения.
От вас ничего не требуется, вы можете просто игнорировать это и двигаться дальше.
У меня работает нормально...
test.xml:
<xml>
<sda
</xml>
основной метод:
public static void main(String[] args) throws IOException, ParserConfigurationException {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = factory.newDocumentBuilder();
Document doc = null;
try {
doc = dBuilder.parse("test.xml");
} catch (SAXException e) {
// do some logging of your own or something
}
System.out.println("done");
}
Вывод на консоль
[Fatal Error] test.xml:3:1: Element type "sda" must be followed by either attribute specifications, ">" or "/>".
done
Хм, вы печатаете исключение, чего вы ожидали?