相关疑难解决方法(0)

如何处理无效的执行状态?

假设您有以下代码块:

if (Light.On) {
    // do something...
} else if (Light.Off) {
    // do something else...
} else {
    // this state should never be reached
}
Run Code Online (Sandbox Code Playgroud)

现在假设应用程序逻辑规定在代码的这一部分中,永远不应该达到最后一个状态,但它不能在编译时确定.也许还有其他状态(例如Light.Broken)可以由应用程序的其他部分设置,但这里没有使用.

你在最后一个else街区添加了什么代码?

  1. 不添加任何代码,因为无论如何都不应该访问它.
  2. 添加一些日志记录功能,以便您作为开发人员知道已达到某些非法状态.
  3. 抛出一个例外,因为不能达到状态,无论如何都要到达,其他东西一定是错的.

第一种选择对我来说似乎不合理,希望事情正确看起来不是正确的选择.选项二的优势在于您的应用程序不会立即崩溃,因此如果在极少数情况下发生这种情况而未在测试中发现,则客户可以继续使用该应用程序,并通知开发人员该问题.选项三导致应用程序崩溃,这显然不是您希望客户体验的东西,但它确实表明出现问题.

处理这种情况的最佳方法是什么?

编辑,根据评论:

引导讨论的一些额外考虑因素:

  • 包含上述代码的方法的合同不允许在该时刻设置任何其他值,然后打开和关闭.
  • 假设代码位于应用程序的一个不那么关键的部分.

branch if-statement

0
推荐指数
1
解决办法
309
查看次数

标签 统计

branch ×1

if-statement ×1