<分区>
我实际上从事框架开发,这意味着需要非常强大的编码方法。
我面临一个问题,我不知道我需要抛出哪个 System.Exception 派生类。基本上情况是当我有一个类,其中的字段可以由构造函数选择性地初始化,并且有使用这些字段的方法。如果用户没有初始化这些字段,我必须抛出哪个异常? (这意味着它们为空)
这是一个例子:
public class MyConnection
{
private Uri endpointUri;
public Uri EndpointUri
{
get
{
return this.endpointUri;
}
set
{
this.endpointUri = value;
}
}
public MyConnection()
{
}
public MyConnection(Uri endpointUri)
{
this.endpointUri = endpointUri;
}
public FileStream GetFile()
{
if (this.endpointUri != null)
{
// My doer methods
}
else
{
throw new TheExceptionINeedToThrow("endpointUri", ...);
}
}
}
请注意,我一直在阅读关于异常处理和抛出的整个 "Framework Design Guidelines" 章节,但我没有找到任何适合这种情况的解决方案。或者也许我误解了什么......
感谢您的帮助。
编辑:关于我的问题,我提供一个空的构造函数这一事实似乎有点令人困惑,但这完全是自愿的。在某些必须符合一系列不同状态且不能在多个对象中复制的对象中,它有时很有用。