跳到主内容

invalid_exception_value

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

描述

#

当调用 Pointer.fromFunctionNativeCallable.isolateLocal 方法时,如果提供了第二个参数(异常返回值),并且该调用的返回类型是 voidHandlePointer 中的任何一种,则分析器会产生此诊断。

有关 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);
}