我使用以下代码从 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;
}
我知道 rethrow 它是多余的部分,但我想以可控的方式抛出它。我想用这个地方向用户展示某些 XML 文件已损坏(即标签未关闭)。一切正常,直到我不离开班级并且我想从请求此数据的班级中捕获此异常。似乎异常被忽略并以某种方式绕过,应用程序突然跳转到不同的方法。为什么我无法捕捉到这个异常?我什至创建了自己的异常,但结果是一样的 - 似乎它只是没有离开原始类并导致一些应用程序跳转。