【问题标题】:What type of throwable error is appropriate to use for this situation? [closed]哪种类型的可抛出错误适用于这种情况? [关闭]
【发布时间】: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


【解决方案1】:

因此,如果它到达else 块,那么它看起来像是试图执行无效操作。那么这对InvalidOperationException 来说是一个很好的例子,但这又是一个暗示性的答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-21
    • 2016-01-06
    • 1970-01-01
    • 2010-11-21
    • 2023-03-10
    • 1970-01-01
    相关资源
    最近更新 更多