RegexStringValidator没有抛出ArgumentException

时间:2015-03-10 17:03:16

标签: c# visual-studio-2012 app-config

我有以下代码:

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>

有人知道实际抛出了什么类型的异常,或者在调试时如何确定这个异常?

1 个答案:

答案 0 :(得分:1)

在遵循Paul Griffin的建议之后,事实证明这里抛出的异常类型是ConfigurationErrorsException。我通过在调试时调用监视窗口中的ex.GetType()来找到它。