【发布时间】:2018-05-19 22:06:58
【问题描述】:
我完成了一个基本 AI 的工作,它使用大小写开关移动; 0(非法移动)、1 和 2(合法移动)。我对 AI 进行编码的方式是让 case switch 应该 的值永远不会为 0。为了安全起见,我将它应该执行的操作编码如下:
if(csZetType > 0) //csZetType is the value for the switchcase, this can't be anything else
//than 0, 1 or 2 unless hardcoded.
{
Move();
}
else
{
MessageBox.Show("Impossible Move of AI", "BUG detected!");
throw new NotImplementedException(); //Only one I know
}
NotImplementedException() 是我知道的唯一版本。我目前正在使用它,但我知道这不是正确的。这种情况我需要哪一个?
顺便说一句,Move 方法存在于适当的开关盒之外,不用担心。
【问题讨论】:
-
异常只对你将如何处理它们很重要。使用最适合您的情况。
-
@theIncorrigible 我知道,但我想要正确的错误,因为它不是没有实现。可能有某种形式的可抛出错误用于突出显示错误,而不是未实现的内容。
-
然而,这并不是这个网站的真正用途。如果您需要意见,您可能需要查看 codereview。
-
如果网站不是在编程/代码方面寻求帮助,我不知道这个网站是为了什么......
-
@TheIncorrigible1 的意思是这里通常不欢迎固执己见的问题。但是,
InvalidOperationException呢? "当方法调用对对象的当前状态无效时抛出的异常。"
标签: c# error-handling throw