我遇到System.Diagnostics.Contracts
的问题。
如果我使用Contract.Requires(condition)
,那么一切都按预期工作。
但我需要一个自定义异常,所以我尝试了Contract.Requires<ToShortException>(condition)
。
当condition
错误时,我预计会ToShortException
,但我什么也没得到。在调试器中我可以看到,这一行被忽略了。
ToShortException
是一个实现Exception
的公共类,有3个公共构造函数。
有谁知道我做错了什么?
异常类:
public class ToShortException : Exception
{
public ToShortException()
{
}
public ToShortException(string message) : base(message)
{
}
public ToShortException(string message, Exception inner) : base(message, inner)
{
}
}
班级方法:
public IDictionary<string, string> getIncident(string name)
{
Contract.Requires(!string.IsNullOrWhiteSpace(name)); //works fine
Contract.Requires<ToShortException>(name.Length == 7); //got not checked
return _original.getIncident(name);
}