Поймать только проблемы с кодировкой символов в XmlException
Я использую System.Xml для анализа XML-документов. Иногда XML-документы содержат не кодируемые символы, а затем XmlException
брошен В этих случаях я хочу повторить анализ документа с принудительной кодировкой, например так:
try {
var doc = new XmlDocument();
doc.Load()
} catch (XmlException xe) {
// Retry here with another encoding..
}
Это работает довольно хорошо, за исключением того, что XmlException генерируется для всех типов проблем xml, даже тех, которые не вызваны проблемами кодировки символов. В этих случаях я не хочу повторять разбор. Так есть ли способ выяснить, было ли исключение XmlException вызвано проблемами кодировки символов или чем-то еще?
2 ответа
Я предполагаю, что ответ "нет", нет способа надежно выяснить, что вызвало XmlException.
Я не знаю точно, как выглядит исключение, но, конечно, проверяя содержимое xe.Message
или же xe.InnerException
вы бы смогли определить тип исключения?