Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 要抛出什么样的异常?_C#_.net_Vb.net_Exception Handling_Exception - Fatal编程技术网

C# 要抛出什么样的异常?

C# 要抛出什么样的异常?,c#,.net,vb.net,exception-handling,exception,C#,.net,Vb.net,Exception Handling,Exception,这个问题听起来可能有点愚蠢,但现在它来了 我有两个函数可以随时调用。第一个函数获取快照,第二个函数分析从该快照获取的数据。当然,如果用户在拍摄快照之前尝试分析快照,我的应用程序应该抛出异常。我知道,ArgumentOutOfRangeException通常在……存在无效参数时抛出,但事实并非如此。这种情况是否存在内置异常,或者我是否必须使用ArgumentOutOfRangeException 谢谢?听起来像是一个无效的例外。 这就是说,如果你能设计你的API,使你不能在这种情况下,这将是更好

这个问题听起来可能有点愚蠢,但现在它来了

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


谢谢

听起来像是一个无效的例外。

这就是说,如果你能设计你的API,使你不能在这种情况下,这将是更好的。类似于(伪):


像这样,没有办法无序调用它们。

我会使用-当提供给方法的参数之一无效时引发的异常

你为什么让他弄错了?一种方法怎么样

 ISnapshot getSnapshot()

使用ISnapshot具有分析方法。或者只使用analyze()来获取快照,如果快照不可用

“当方法调用对对象的当前状态无效时引发的异常。”+1,我会采用这种方法,通过要求代码在访问方法之前实际拥有快照来消除问题。我明白你的意思,但也许在这种情况下是不合适的。
 ISnapshot getSnapshot()