跳到主内容

switch_case_completes_normally

该“案例”不应正常完成。

描述

#

switch 语句中某个 case 标签后的语句可能会落入(fall through)下一个 casedefault 标签时,分析器会产生此诊断信息。

示例

#

以下代码会产生此诊断信息,因为值为零 (0) 的 case 标签落入(falls through)了 default 语句

dart
void f(int a) {
  switch (a) {
    case 0:
      print(0);
    default:
      return;
  }
}

常见修复方法

#

改变控制流,使 case 不会落入。有几种方法可以做到这一点,包括在当前语句列表的末尾添加以下之一

  • 一个 return 语句,
  • 一个 throw 表达式,
  • 一个 break 语句,
  • 一个 continue,或
  • 调用返回类型为 Never 的函数或方法。