如何从 try 块中获取所有异常引用?
How to get all the exception references from the try block?
我有一个方法可以根据 XSD 验证 XML,我在其中尝试传递多个记录。在处理异常时,我只收到第一次发生的异常消息。如何获取所有错误参考?
public static bool Validate(string sFileXML, string sFileXSD)
{
try
{
XmlReaderSettings settings = new XmlReaderSettings();
settings.Schemas.Add(null, sFileXSD);
settings.ValidationType = ValidationType.Schema;
XmlDocument document = new XmlDocument();
document.Load(sFileXML);
XmlReader objReader = XmlReader.Create(new StringReader(document.InnerXml), settings);
while (objReader.Read())
{
}
return true;
}
catch (Exception eException)
{
Console.WriteLine(eException.Message);
return false;
}
}
我不确定这是否是您要查找的内容,但您可以在循环中使用 Try-Catch
:
public static bool Validate(string sFileXML, string sFileXSD)
{
XmlReaderSettings settings = new XmlReaderSettings();
settings.Schemas.Add(null, sFileXSD);
settings.ValidationType = ValidationType.Schema;
XmlDocument document = new XmlDocument();
document.Load(sFileXML);
XmlReader objReader = XmlReader.Create(new StringReader(document.InnerXml), settings);
bool success = true, canRead = true;
while(canRead)
{
try
{
canRead = objReader.Read();
// do something else?
} catch (Exception eException)
{
success = false;
Console.WriteLine(eException.Message);
}
}
return success;
}
您可以在 XmlReaderSettings
上设置 ValidationEventHandler
。这将使您有机会在阅读 XML.
时处理每个事件和异常
ValidationEventArgs
有一个 Exception
属性,其中包含 XML 验证异常。
我有一个方法可以根据 XSD 验证 XML,我在其中尝试传递多个记录。在处理异常时,我只收到第一次发生的异常消息。如何获取所有错误参考?
public static bool Validate(string sFileXML, string sFileXSD)
{
try
{
XmlReaderSettings settings = new XmlReaderSettings();
settings.Schemas.Add(null, sFileXSD);
settings.ValidationType = ValidationType.Schema;
XmlDocument document = new XmlDocument();
document.Load(sFileXML);
XmlReader objReader = XmlReader.Create(new StringReader(document.InnerXml), settings);
while (objReader.Read())
{
}
return true;
}
catch (Exception eException)
{
Console.WriteLine(eException.Message);
return false;
}
}
我不确定这是否是您要查找的内容,但您可以在循环中使用 Try-Catch
:
public static bool Validate(string sFileXML, string sFileXSD)
{
XmlReaderSettings settings = new XmlReaderSettings();
settings.Schemas.Add(null, sFileXSD);
settings.ValidationType = ValidationType.Schema;
XmlDocument document = new XmlDocument();
document.Load(sFileXML);
XmlReader objReader = XmlReader.Create(new StringReader(document.InnerXml), settings);
bool success = true, canRead = true;
while(canRead)
{
try
{
canRead = objReader.Read();
// do something else?
} catch (Exception eException)
{
success = false;
Console.WriteLine(eException.Message);
}
}
return success;
}
您可以在 XmlReaderSettings
上设置 ValidationEventHandler
。这将使您有机会在阅读 XML.
ValidationEventArgs
有一个 Exception
属性,其中包含 XML 验证异常。