跳至主要内容

missing_exception_value

当函数的返回类型既不是 'void'、'Handle' 也不是 'Pointer' 时,方法 {0} 必须有一个异常返回值(第二个参数)。

描述

#

当对方法 Pointer.fromFunctionNativeCallable.isolateLocal 的调用没有第二个参数(异常返回值),且该调用预期返回的类型既不是 voidHandle 也不是 Pointer 时,分析器会生成此诊断信息。

有关 FFI 的更多信息,请参阅 使用 dart:ffi 进行 C 互操作

示例

#

以下代码会产生此诊断信息,因为函数 f 预期返回一个 8 位整数,但对 fromFunction 的调用不包含异常返回参数

dart
import 'dart:ffi';

int f(int i) => i * 2;

void g() {
  Pointer.fromFunction<Int8 Function(Int8)>(f);
}

常见修复

#

添加一个异常返回类型

dart
import 'dart:ffi';

int f(int i) => i * 2;

void g() {
  Pointer.fromFunction<Int8 Function(Int8)>(f, 0);
}