这个问题可能听起来有点愚蠢,但就在这里。
我有两个可随时调用的函数。第一个函数拍摄快照,第二个函数分析从该快照获取的数据。当然,如果用户在获取快照之前尝试分析快照,我的应用程序应该抛出异常。我知道ArgumentOutOfRangeException
通常会抛出......有一个无效的参数,但实际情况并非如此。对于这种情况是否有任何内置异常,或者我是否必须使用ArgumentOutOfRangeException
?
由于
答案 0 :(得分:16)
答案 1 :(得分:16)
听起来像是InvalidOperationException。 http://msdn.microsoft.com/en-us/library/system.invalidoperationexception.aspx
那就是说,如果你可以设计你的API以便你无法处理这种情况,那就更好了。像(伪)的东西:
public Data TakeSnapshot()
{
// ...
return new Data(...);
}
public void Analyze(Data data)
{
// ...
}
像这样,没有办法不按顺序调用它们。
答案 2 :(得分:8)
为什么你允许他弄错?方法怎么样
ISnapshot getSnapshot()
ISnapshot具有analyze方法。或者只是analyze()获取快照(如果没有)
答案 3 :(得分:0)
我会使用System.ArgumentException - 当提供给方法的其中一个参数无效时引发的异常。