跳到主内容

nullable_type_in_catch_clause

潜在的可空类型不能在 'on' 子句中使用,因为抛出可空表达式是无效的。

描述

#

catch 子句中 on 后面的类型是可空类型时,分析器会产生此诊断。指定可空类型是无效的,因为无法捕获 null(因为抛出 null 是一个运行时错误)。

示例

#

以下代码会产生此诊断,因为当无法抛出 null 时,异常类型被指定为允许 null

dart
void f() {
  try {
    // ...
  } on FormatException? {
  }
}

常见修复方法

#

从类型中移除问号

dart
void f() {
  try {
    // ...
  } on FormatException {
  }
}