跳到主內容

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;