哪种类型的可抛出错误适合用于这种情况?

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 来说是一个很好的案例,但这又是一个暗示性的答案。