跳到主内容

null_check_always_fails

这个空值检查将总是抛出异常,因为表达式总是会评估为 'null'。

描述

#

当空值检查运算符 (!) 用于一个其值只能为 null 的表达式时,分析器会生成此诊断信息。在这种情况下,该运算符总是会抛出异常,这可能不是预期的行为。

示例

#

以下代码会生成此诊断信息,因为函数 g 总是返回 null,这意味着 f 中的空值检查将总是抛出异常

dart
void f() {
  g()!;
}

Null g() => null;

常见修复方法

#

如果你打算总是抛出异常,那么用一个显式的 throw 表达式替换空值检查,以使意图更明确

dart
void f() {
  g();
  throw TypeError();
}

Null g() => null;