invalid_exception_value
当函数的返回类型是 'void'、'Handle' 或 'Pointer' 时,方法 {0} 不能有异常返回值(即第二个参数)。
描述
#当调用 Pointer.fromFunction
或 NativeCallable.isolateLocal
方法时,如果提供了第二个参数(异常返回值),并且该调用的返回类型是 void
、Handle
或 Pointer
中的任何一种,则分析器会产生此诊断。
有关 FFI 的更多信息,请参阅使用 dart:ffi 进行 C 互操作。
示例
#以下代码会产生此诊断,因为在函数 f
的返回类型为 void
时提供了第二个参数
dart
import 'dart:ffi';
typedef T = Void Function(Int8);
void f(int i) {}
void g() {
Pointer.fromFunction<T>(f, 42);
}
常见修复方法
#移除异常返回值
dart
import 'dart:ffi';
typedef T = Void Function(Int8);
void f(int i) {}
void g() {
Pointer.fromFunction<T>(f);
}