扔什么样的例外?

时间:2009-08-11 09:04:25

标签: c# .net vb.net exception-handling exception

这个问题可能听起来有点愚蠢,但就在这里。

我有两个可随时调用的函数。第一个函数拍摄快照,第二个函数分析从该快照获取的数据。当然,如果用户在获取快照之前尝试分析快照,我的应用程序应该抛出异常。我知道ArgumentOutOfRangeException通常会抛出......有一个无效的参数,但实际情况并非如此。对于这种情况是否有任何内置异常,或者我是否必须使用ArgumentOutOfRangeException

由于

4 个答案:

答案 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 - 当提供给方法的其中一个参数无效时引发的异常。