Я использую следующий код для чтения данных из XML
var temp = default(T);
var serializer = new XmlSerializer(typeof(T));
try
{
TextReader textReader = new StreamReader(fileName);
temp = (T)serializer.Deserialize(textReader);
}
catch (InvalidOperationException ioe)
{
throw;
}
Я знаю, что rethorow это избыточная часть, но я хотел сделать это контролируемым образом. Я хочу использовать это место, чтобы показать пользователю, что какой-то файл XML был поврежден (т.е. тег не был закрыт). Все работает нормально, пока я не выйду из класса и не хочу поймать это исключение из класса, который запрашивает эти данные. Кажется, что исключение пропущено и каким-то образом обойдено, и приложение внезапно переходит к другому методу. Почему я не могу поймать это исключение? Я даже создаю свое исключение, но результат был тот же - кажется, что оно просто не покидает исходный класс и вызывает какой-то скачок приложения.