我有以下代码:
try
{
var configSection = config.GetSection("customSectionConfiguration") as CustomSection;
}
catch (ArgumentException ex)
{
throw new InvalidConfigurationException(ex);
}
catch (Exception)
{
throw;
}
在我的CustomSection类中,我有一个ConfigurationElement,它具有RegexStringValidator属性,如下所示:
[ConfigurationProperty("property", IsRequired=true, DefaultValue="null")]
[RegexStringValidator("^\w*$")]
public string Property {...}
现在在我的配置文件中,我放置了一个违反此正则表达式的值,当我尝试加载配置(config.GetSection(...)
)时,会按预期抛出异常,但它不是像RegexStringValidator文档建议的那样的ArgumentException。相反,它被通用异常捕获并带有以下消息:“属性'属性'的值无效。错误是:该值不符合验证正则表达式字符串'^ \ w * $'”。< / p>
有人知道实际抛出了什么类型的异常,或者在调试时如何确定这个异常?
答案 0 :(得分:1)
在遵循Paul Griffin的建议之后,事实证明这里抛出的异常类型是ConfigurationErrorsException。我通过在调试时调用监视窗口中的ex.GetType()来找到它。