我需要捕获验证器抛出的任何异常,但我不知道如何处理它。这是我尝试过的代码:
internal static class XMLValidator
{
public static void Validate(XElement elem)
{
string xsdMarkup;
using(var file = new StreamReader(Constants.Xsd))
{
xsdMarkup = file.ReadToEnd();
}
XmlSchemaSet schema = new XmlSchemaSet();
bool valid = true;
schema.Add(XmlSchema.Read(XElement.Parse(xsdMarkup).CreateReader(), (o, e) => { }));
new XDocument(elem).Validate(schema, (o, e) => { valid = false; exception = e; });
if (valid == false)
{
throw exception;
}
valid = true;
}
}
我收到“当前上下文中不存在名称异常”错误。我很确定问题是我没有给异常一个数据类型。但是我不知道要使用什么类型。
我尝试在异常之前添加 var 但在 if 语句中无法识别它,当然 var 不能在方法之外声明
然后,我尝试将全局豁免声明为字符串并设置为 e,如下所示:
exception = e.ToString();
但是我不能把它扔到 if 语句中。
我该怎么做呢?