如果我遇到非法状态,我应该抛出什么异常 - 例如,初始化方法只应在第二次调用时调用一次?我真的没有看到任何有意义的内置异常.这似乎应该在框架中 - 我不是在正确的位置戳?
我实际上正致力于框架开发,这意味着需要一个非常强大的编码方法.
我遇到一个问题,我不知道我需要抛出哪个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", ...);
}
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,我一直在阅读有关异常处理和抛出的整个"框架设计指南"章节,并且我没有找到适合这种情况的任何解决方案.或许我误解了一些事情......
谢谢你的帮助.
编辑:我提供一个空构造函数的事实似乎有点混乱我的问题,但它是完全自愿的.在一些必须符合一系列不能在多个对象中复制的不同状态的对象中,它有时是有用的.