哪种类型的可抛出错误适合用于这种情况?
What type of throwable error is appropriate to use for this situation?
我完成了一个基本 AI 的开发,它使用 case switch 移动; 0(非法移动)、1 和 2(合法移动)。我对 AI 进行编码的方式是,大小写开关的值 应该 永远不会为 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 方法存在于适当的 switch case 之外,别担心。
因此,如果它到达 else
块,那么它看起来像是试图执行无效操作。那么这对 InvalidOperationException
来说是一个很好的案例,但这又是一个暗示性的答案。
我完成了一个基本 AI 的开发,它使用 case switch 移动; 0(非法移动)、1 和 2(合法移动)。我对 AI 进行编码的方式是,大小写开关的值 应该 永远不会为 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 方法存在于适当的 switch case 之外,别担心。
因此,如果它到达 else
块,那么它看起来像是试图执行无效操作。那么这对 InvalidOperationException
来说是一个很好的案例,但这又是一个暗示性的答案。