missing_exception_value
当函数的返回类型既不是 'void'、'Handle' 也不是 'Pointer' 时,方法 {0} 必须有一个异常返回值(第二个参数)。
描述
#当对方法 Pointer.fromFunction
或 NativeCallable.isolateLocal
的调用没有第二个参数(异常返回值),且该调用预期返回的类型既不是 void
、Handle
也不是 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);
}